我製作了自定義的uiTableViewCell並使用它像屏幕截圖一樣使用了UITableview。 問題是組表上的第一個和最後一個單元的圓角。 UITableViewCell組合表的第一個和最後一個單元格的圓角
如何使拳頭和最後一個單元格圓角
我製作了自定義的uiTableViewCell並使用它像屏幕截圖一樣使用了UITableview。 問題是組表上的第一個和最後一個單元的圓角。 UITableViewCell組合表的第一個和最後一個單元格的圓角
如何使拳頭和最後一個單元格圓角
嘗試設置單元格的背景顏色clearColor:您的表格似乎有圓角,但您的單元格正在覆蓋它。另一種替代解決方案可能是更改表格背後的視圖屬性。嘗試:
backgroundView.clipsToBounds = YES;
或
tableView.layer.cornerRadius = 5;
tableView.layer.masksToBounds = YES;
您可能需要
#import <QuartzCore/QuartzCore.h>
添加的tableView的財產你的,並設置它在你的控制器:
@property (nonatomic, weak) UITableView *tableView;
然後你可以像這樣實現它:
- (void)layoutSubviews {
[super layoutSubviews];
UIRectCorner rectCorner;
BOOL roundCorners = YES;
NSIndexPath *indexPath = [self.tableView indexPathForCell:self];
NSInteger numberOfRows = [self.tableView numberOfRowsInSection:indexPath.section];
if (numberOfRows == 1) { // single cell
rectCorner = UIRectCornerAllCorners;
} else if (indexPath.row == numberOfRows - 1) { // bottom cell
rectCorner = UIRectCornerBottomLeft | UIRectCornerBottomRight;
} if (indexPath.row == 0) { // top cell
rectCorner = UIRectCornerTopLeft | UIRectCornerTopRight;
} else {
roundCorners = NO;
}
if (roundCorners) {
CGFloat cornerRadius = 10.0;
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:self.bounds
byRoundingCorners:rectCorner
cornerRadii:CGSizeMake(cornerRadius, cornerRadius)];
CAShapeLayer *maskLayer = [CAShapeLayer layer];
maskLayer.frame = self.bounds;
maskLayer.path = maskPath.CGPath;
self.layer.mask = maskLayer;
}
}
您可避免通過檢查self.superview.superview
(iOS7,self.superview
之前),其上的屬性tableView
,但我認爲這是一個更清潔,不易出錯的方式。
[如何自定義分組表視圖的背景/邊框顏色?](http://stackoverflow.com/questions/400965/how-to-customize-the-background-border-colors-of -a-grouped-table-view) – rckoenes
請在發佈查詢之前徹底搜索StackOverflow。有這麼多的問題。 – Legolas
我已閱讀它,但我不解決它從我的問題發生從UITableViewCell和組表。 – dobiho