2015-04-28 31 views
1

有沒有爲單個UITableViewCell設置分隔符插頁的方法?看來我只能用setSeparatorInset:方法設置全局UITableView分隔符插入,但我想在同一個UITableView中有不同的插入。以某種方式可能嗎?爲單個UITableViewCell設置分隔符插頁

我嘗試使用tableView:willDisplayCell:forRowAtIndexPath:來設置分隔符插入一個具體的UITableViewCell如下,但它不起作用。

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    ... 
    [cell setSeparatorInset:UIEdgeInsetsMake(0, 50, 0, 0)]; 
} 

我正在使用iOS7。

+0

試圖寫在uitableview委託方法cellForRowAtIndexPath –

+0

這將無法正常工作。問題是'setSeparatorInset:'方法存在於UITableView中,所以如果我使用它,它將更改整個UITableView的分隔符插入,而不是具體的單元格。 – Pablo

+0

可能重複[iOS 8 UITableView分隔符插圖0不工作](http://stackoverflow.com/questions/25770119/ios-8-uitableview-separator-inset-0-not-working) – GoodSp33d

回答

0

您可以使用自定義單元格。 您將UITableView設置爲根本不顯示分隔符(separatorStyle = UITableViewCellSeparatorStyleNone),並讓您的UITableViewCell子類處理分隔符的圖形。最簡單的方法是在每個單元上都有一個「分隔視圖」。現在,當您在cellForRowAtIndexPath中配置單元格時,您可以設置您喜歡的任何插圖。

0

如果您知道單元的indexPath。您可以使用

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { ... if (indexPath.row == 0) { // Customize here [cell setSeparatorInset:UIEdgeInsetsMake(0, 50, 0, 0)]; } else { [cell setSeparatorInset:UIEdgeInsetsMake(0, 0, 0, 0)]; } }

如果沒有設置它,你應該繼承UITableView和定製分離插圖那裏。然後將其加載到你的tableview中。請勿在cellForRowAtIndexPath:方法和subclasses中設置separatorInset屬性。