我使用基于单一视图创建了一个应用程序。现在我必须显示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
。
我如何才能进行长文本和图像显示。任何想法都可以。
答案 0 :(得分:2)
我认为您可以使用导航控制器并在其上推送tableView。在选择表格的单元格时,您应该推送一个detailView(所有单元格的一个详细视图)。仅当您必须在detailView中显示相同格式的详细信息数据时,此方法才有效。否则,如果每个选择都有不同的屏幕,那么你可以设计所有那些也会使它变得沉重的屏幕。
答案 1 :(得分: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:必须如下所示:
- (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];
}