これはブログ アプリ用であり、私が抱えている問題は、投稿とそのコメントのレイアウトにあります。
理想的には、レイアウトは次のようになります (バージョン 1):
親は UIScrollView であり、表示される他のすべての要素はその中にあります。下部の UITabelView は、コメント スレッドを受け取ります。
これは機能しますが、問題はコメント UITableView にあります。スクロールをオフにして、コメントの数に基づいて垂直方向に「成長」させることができると思いました。しかし、数行の後、コンテンツが切り取られます。これは、残りの行が UIScrollView の垂直サイズ内でレンダリングされていないためです。
私はUIScrollViewを廃止するためにSOを読みました-代わりにUITableViewですべてを構築しました。上にカスタム セルを作成して UIImageView を保持し、下に投稿テキスト用の別のカスタム セルなどを作成します。
バージョン 2
私の質問は次のとおりです。JSON フィードの特定の部分を送信してカスタム セルにデータを入力し、下のセルにデータを入力するコメントを反復処理するにはどうすればよいですか?
たとえば、以下のコードは、バージョン 1 のコメント UITableView にコメントを送信/反復します。
しかし、投稿画像または投稿テキストをバージョン 2 のカスタム セルに送信するにはどうすればよいでしょうか。
より良いアプローチはありますか?どんな種類のアドバイスでも大歓迎です。
DetailViewController.h
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"commentCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
NSDictionary *post = self.detailItem;
NSArray *commentThread = [post objectForKey:@"comment"];
NSDictionary *comment = [commentThread objectAtIndex:indexPath.row];
NSString *commentText = [comment objectForKey:@"comment_text"];
NSString *commentAuthorName = [comment objectForKey:@"comment_author_name"];
cell.textLabel.text = commentText;
cell.detailTextLabel.text = commentAuthorName;
return cell;
}
JSON
...
{
"post_id": "1463",
"post_title": null,
"post_text": "dffsdjdflkjklk dlfkjsdlfkj",
"comment": [
{
"comment_author_name": "2162",
"comment_text": "yuiyuiiopiop",
},
{
"comment_author_name": "2163",
"comment_text": "tyutyutyutyuu",
},
{
"comment_author_name": "2164",
"comment_text": "sdfsertertr",
},
]
},
...