Jes*_*ica 32 objective-c uitableview ios
我正在尝试删除一个分隔符UITableViewCell.我做了以下事情:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell;
cell = [super tableView:tableView cellForRowAtIndexPath:indexPath];
if (indexPath.row == 1)
cell.separatorInset = UIEdgeInsetsZero;
return cell;
}
Run Code Online (Sandbox Code Playgroud)
(是的static cells.)当我运行应用程序时.分隔线仍在那里.如何删除分隔线cell?
Grz*_*ski 25
在iOS 8上,您需要使用:
cell.layoutMargins = UIEdgeInsetsZero
Run Code Online (Sandbox Code Playgroud)
如果您想要与iOS 7兼容,您应该执行以下操作:
if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {
[cell setSeparatorInset:UIEdgeInsetsZero];
}
if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
[cell setLayoutMargins:UIEdgeInsetsZero];
}
Run Code Online (Sandbox Code Playgroud)
ADD:如果以前没有用 - 请使用它.(来自下面的答案)
cell.separatorInset = UIEdgeInsetsMake(0, 1000, 0, 0);
Run Code Online (Sandbox Code Playgroud)
Val*_*gin 16
您可以直观地通过separatorInset属性隐藏分隔符:
tableViewCell.separatorInset = UIEdgeInsets(top: 0, left: 10000, bottom: 0, right: 0)
Run Code Online (Sandbox Code Playgroud)
为您需要自定义的特定单元格分配下一个值。
cell.separatorInset = UIEdgeInsetsMake(0, 0, 0, .greatestFiniteMagnitude)
cell.directionalLayoutMargins = .zero
Run Code Online (Sandbox Code Playgroud)
如果要仅为特定类型的单元格隐藏分隔线,可以使用以下代码:
override func layoutSubviews() {
super.layoutSubviews()
subviews.forEach { (view) in
if view.dynamicType.description() == "_UITableViewCellSeparatorView" {
view.hidden = true
}
}
}
Run Code Online (Sandbox Code Playgroud)
将此代码写入单元格(它必须是子类UITableViewCell),您不希望出现分隔线.
斯威夫特 5 享受
//MARK:- In which row you want to hide
cell.separatorInset = UIEdgeInsets(top: 0, left: CGFloat.greatestFiniteMagnitude, bottom: 0, right: 0);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30773 次 |
| 最近记录: |