tips: UITableViewで余分な境界線(separator)を非表示にする
これが一番簡単っぽい。
self.tableView.tableFooterView = [[[UIView alloc] init] autorelease];
例えば UITableView を使っていて、
self.tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
のように境界線をONにしているとき、
画面の高さに対して、 UITableView の高さが足りてない(セルの要素数が足りてない)とき、空のセルが余白を埋めるかのように表示されてしまう。境界線なしのときは気にならないんだけど、境界線があると気になる。というか表示したくない。
検索してみるとStack Overflowがよく引っかかるんだけど、どうも解決策がまちまちで、例えば、 viewDidLoad 内で、
self.tableView.separatorColor = [UIColor clearColor];
として、 cellForRowAtIndexPath 内で、
if(indexPath.row == self.newCarArray.count-1){
} else {
UIImageView *line = [[UIImageView alloc] initWithFrame:CGRectMake(0, 44, 320, 2)];
line.backgroundColor = [UIColor redColor];
[cell addSubview:line];
}
のようにする方法(http://stackoverflow.com/questions/8561774/hide-separator-line-on-one-uitableviewcell)とか。
でもこれだと、セルによって高さを動的に変えたりしてるときに、いちいち高さが変わったセルのheightを取って、境界線を addSubView し直したりするのも面倒。なので冒頭に書いた方法が一番簡単だと思う。