如題,不管Custom Cell或iOS原生的DefaultStyle Cell,都會發生accessoryType不管怎麼設定都無效的狀況,其實無關AutoLayout或XCode版本~
最需要注意的是,編輯狀態是否開啟!
假設某些row設定cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
當UITableView透過 setEditing:YES 開啟編輯狀態,UITableViewCellAccessoryDisclosureIndicator效果會因此不見,只剩下label text,且相對於UITableView的margin等layout呈現都會不同。
如果UITableView很複雜,想同時有編輯狀態又要保持accessoryType ,那麼就要仔細針對每個cell去設定編輯狀態,實際撰寫方式如下
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.section == 1)
return YES;
else
return NO;
}
- (UITableViewCellEditingStyle)tableView:(UITableView *)aTableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
if(indexPath.section == 1) {
if(indexPath.row == [self.myData count])
return UITableViewCellEditingStyleInsert;
else
return UITableViewCellEditingStyleDelete;
} else {
return UITableViewCellEditingStyleNone;
}
}
沒有留言:
張貼留言