我想顯示UITableview自定義單元格。但我的表格分隔符不按預期顯示。我附上截圖。uitableviewcell分隔線不顯示全寬
我試圖讓UIEdgeInsetZero但它並沒有奏效。任何人都可以幫我解決這個問題。
我想顯示UITableview自定義單元格。但我的表格分隔符不按預期顯示。我附上截圖。uitableviewcell分隔線不顯示全寬
我試圖讓UIEdgeInsetZero但它並沒有奏效。任何人都可以幫我解決這個問題。
嘿,我所有的解決方案。
我重寫我的自定義UITableViewCell中的layoutSubviews和分隔符顯示正確。
- (void)layoutSubviews {
[super layoutSubviews];
for (UIView *subview in self.contentView.superview.subviews) {
if ([NSStringFromClass(subview.class) hasSuffix:@"SeparatorView"]) {
subview.hidden = NO;
}
} }
設置separatorInset
到UIEdgeInsetZero
是不夠的iOS 8.您還應該設置表和單元格的layoutMargins
屬性UIEdgeInsetZero
。
試試這個:
cell.layoutMargins = UIEdgeInsetsZero;
cell.preservesSuperviewLayoutMargins = NO;
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
// Remove seperator inset
if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {
[cell setSeparatorInset:UIEdgeInsetsZero];
}
// Prevent the cell from inheriting the Table View's margin settings
if ([cell respondsToSelector:@selector(setPreservesSuperviewLayoutMargins:)]) {
[cell setPreservesSuperviewLayoutMargins:NO];
}
// Explictly set your cell's layout margins
if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
[cell setLayoutMargins:UIEdgeInsetsZero];
}
}
無法反映約束和故事板 –
設置你的好,你需要做'separatorInset'到**無**了'UITableView'並在自定義單元格中,您需要從底部放置1px高度的UIView。 –