0

シングル ビュー ベースを使用してアプリを作成しました。現在、15 個のメニューと各メニューの説明をUITableView表示する必要があります。そこで挿入を使用することを考えました。セルを選択すると、長いテキストと画像のコンテンツが表示されるはずです。プログラムで説明を追加するには、説明ごとに作成するViewControllerか、ショートカットを作成する必要があります テーブルビューのコードは次のとおりです

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}

// Set up the cell...
cell.textLabel.font = [UIFont fontWithName:@"Helvetica" size:15];
cell.textLabel.text = [NSString  stringWithFormat:@"Cell Row #%d", [indexPath row]];

return cell;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// open a alert with an OK and cancel button
NSString *alertString = [NSString stringWithFormat:@"Clicked on row #%d", [indexPath row]];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:alertString message:@"" delegate:self cancelButtonTitle:@"Done" otherButtonTitles:nil];
[alert show];
[alert release];
}

これは、UIAlertViewセルがタッチされたときに作成するためのものです。

長いテキストと画像を表示するにはどうすればよいですか。

4

2 に答える 2

2

ナビゲーションコントローラーを使用して、tableViewをプッシュできると思います。テーブルのセルを選択すると、detailView (すべてのセルに対して 1 つの詳細ビュー) をプッシュする必要があります。これは、detailView で同じ形式の詳細データを表示する必要がある場合にのみ機能します。そうでなければ、選択ごとに異なる画面が必要な場合は、それらすべての画面を設計することもできますが、これも重くなります。

于 2012-07-12T07:28:03.257 に答える
2

画像とテキストで初期化する単一の ViewController を作成できます。View Controller 内で UITextView と UIImageView を作成する必要があります。ViewController は次のようにする必要があります。

@interface ViewController : UIViewController {
    UIImageView *imageView;
    UITextView *textView;
}

-(id)initWithText:(NSString *)text image:(UIImage *)image;

@end

@implementation ViewController

-(id)initWithText:(NSString *)text image:(UIImage *)image {
    if (self = [super init]) {
        //ImageView initialization
        imageView.image = image;
        //TextViewInitialization
        textView.text = text;
    }
    return self;
}

@end

テーブルビューのView Controllerでは、セルに対応する画像とテキストを含む2つの配列を作成できます。次に didSelectRowAtIndexPath: は次のようになります。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    ViewController *vc = [[ViewController alloc]initWithText:[textArray objectAtIndex:indexPath.row] image:[imagesArray objectAtIndex:indexPath.row]];
    [[self navigationController] pushViewController:vc animated:YES];
    [vc release];
}
于 2012-07-12T07:29:18.433 に答える