自定义UITableView(UIView + Cells)

时间:2009-12-23 04:05:12

标签: iphone objective-c uitableview

我已经创建了一个UIViewController,在那里我显示文本,图片和其他信息。现在我想能够在这个视图下放置一些单元格(所以是一个tableView)。 最好的方法是什么?

我是否必须创建一个UITableView并使用我的图片,文本或其他可能性创建标题

最诚挚的问候,

3 个答案:

答案 0 :(得分:2)

好的,我找到了解决方案。

我创建了一个简单的UITableView。 在tableView中我创建了一个函数:


-(void)setHeaderView {

    self.myHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, 300)];
    self.tableView.tableHeaderView = self.myHeaderView;

}

在ViewWillAppear中,我只需要调用此函数。因此,当我运行应用程序时,它将显示View并在View my TableView下显示。 我不知道那很容易。

最诚挚的问候,

答案 1 :(得分:1)

回复您关于解决方案的帖子: 不确定,但是你不应该在myHeaderView末尾发布setHeaderView()吗?

答案 2 :(得分:0)

这取决于您希望UITableViewCells看起来的样子。如果您只想要一行文本,则无需创建自定义单元格,而是在代码中创建一个。

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

   UITableViewCell *cell = [[UITableViewCell alloc] dequeueReusableCellWithIdentifier:@"someId"];

   if (cell == nil) {
      cell = [[[UITableViewCell alloc] 
                 initWithFrame:CGRectZero 
                 reuseIdentifier:someIdentifier] autorelease];
     ...
   }

但是,如果你需要一张照片和一些文字,你可以更容易地创建一个UITableViewCell.xib文件,添加UILabel,UIImageViews等,然后在上面显示的方法中创建单元格时替换

cell = [[[UITableViewCell alloc] initWithFrame ...

NSArray *nib = [[NSBundle] mainBundle] loadNibNamed:@"YourNibCustomCellName" owner:self options:nil];
cell = [nib objectAtIndex:0];