0

我已经使用基于单一视图的应用程序创建了一个应用程序。现在我必须显示 15 个菜单和每个菜单的描述。所以我想在其中使用UITableView插入。选择一个单元格时,它应该显示长文本和图像内容。Do i必须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(所有单元格的一个详细视图)。这仅在您必须在 detailView 中显示相同格式的详细信息数据时才有效。否则,如果您必须为每个选择设置不同的屏幕,那么您可以设计所有那些也会使其变得沉重的屏幕。

于 2012-07-12T07:28:03.257 回答
2

您可以创建一个使用图像和文本初始化的 ViewController,在视图控制器内部您应该创建 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

在表视图的视图控制器中,您可以创建 2 个数组,其中包含对应的图像和文本到单元格。然后 didSelectRowAtIndexPath: must 看起来像这样:

- (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 回答