UITableView - 如何仅显示包含数据的行

时间:2011-06-20 11:27:51

标签: iphone objective-c ios ipad uitableview

如何显示UITableView仅包含数据的行,而不包含其他行。默认情况下,UITableView显示10行。如果我们有三行数据它将只显示三行 我该如何实现呢?谢谢。

7 个答案:

答案 0 :(得分:32)

如果需要,您可以设置页脚视图并使其不可见。分隔符仅出现在包含数据的行中:

self.theTableView.tableFooterView = [[[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 10.0f)] autorelease];

答案 1 :(得分:17)

试试这个..

self.tableView.tableFooterView = [UIView new];

答案 2 :(得分:2)

  

我认为不可能使用标准方法隐藏额外的分隔符。此行为已预设。

即使没有真正的行存在,

Plain样式的tableView也会显示row/separator。只有Grouped样式的tableView才会显示现有的行。

编辑:根据其他人的建议,您可以向tableView添加页脚视图以隐藏这些额外的分隔符。

答案 3 :(得分:0)

好的,我假设您正在使用Interface Builder。

简单方法:

  1. 确保您已将视图控制器类选为UITableViewDelegate和UITabbleViewDataSource。

  2. 在ViewController.h(或其任何调用的)中,在@interface定义的{之前添加<UITableViewDelegate,UITableViewDataSource>。对于必须符合这些协议的类。

  3. 确保最小的数据源协议方法在类中:

    – tableView:cellForRowAtIndexPath:  
    – tableView:numberOfRowsInSection: 
    
  4. 在 - tableView:numberOfRowsInSection:方法中返回所需行数 - 3或通过一些代码来计算此属性

  5. :cellForRowAtIndexPath:方法中的
  6. 在单元格上执行您需要的操作并返回它。 Boilerplate代码

    是:

    -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
    {
        UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:@"MyIdentifier"];
    
     if (cell == nil) 
     {
         cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:@"MyIdentifier"] autorelease];
     }
    
    cell.text = @"I am a cell";
    return cell;
    }
    
  7. N.B。如果您不使用Interface Builder,请执行以下操作: tableView.delegate = self; tableView.datasource = self;

    答案 4 :(得分:0)

    添加一个填充屏幕其余部分的静态单元格。

    答案 5 :(得分:0)

    只需在viewDidLoad()方法中添加以下代码即可。

    self.tableview.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
    

    答案 6 :(得分:-2)

    您可以在以下函数的return参数中指定所需的行数:

    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    
        return NUMBER_OF_ROWS;
    }
    

    有关详细信息,请浏览UITableView的Apple文档。

    http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UITableView_Class/Reference/Reference.html