我有一个表,有一个部分(这是默认行为)。它默认有5行,可以有行< 5 或行> 5 行基于用户与应用的一些互动。
我想让第一个和最后一个单元格分别从左上/右上和左下/右舍入。
我可以通过UIBezierPath
和CAShapeLayer
来完成。但问题是当行数增加/减少时。我不确定如何重置以前舍入的单元格并更新具有特定情况的新单元格?
当我将表格置于编辑模式时会出现另一个问题,当一个删除按钮可见时,它将不会显示第一个和最后一个单元格。它在那里,但不可见。
以下是该应用的截图。
任何人都可以告诉我,我在这里做错了吗?
这是我的代码:
- (void) roundCornersAtTopInView:(UIView *)view withRadius:(float)radius withSize:(CGSize)size {
UIRectCorner corner = (UIRectCornerTopLeft | UIRectCornerTopRight);
UIView *roundedView = view;
CGRect actualRect = CGRectMake(roundedView.frame.origin.x, roundedView.frame.origin.y, size.width, size.height);
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:actualRect byRoundingCorners:corner cornerRadii:CGSizeMake(radius, radius)];
CAShapeLayer *maskLayer = [CAShapeLayer layer];
maskLayer.frame = actualRect;
maskLayer.path = maskPath.CGPath;
roundedView.layer.mask = maskLayer;
roundedView.layer.masksToBounds = YES;
}
- (void) roundCornersAtBottomInView:(UIView *)view withRadius:(float)radius withSize:(CGSize)size {
UIRectCorner corner = (UIRectCornerBottomLeft | UIRectCornerBottomRight);
UIView *roundedView = view;
CGRect actualRect = CGRectMake(roundedView.frame.origin.x, roundedView.frame.origin.y, size.width, size.height);
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:actualRect byRoundingCorners:corner cornerRadii:CGSizeMake(radius, radius)];
CAShapeLayer *maskLayer = [CAShapeLayer layer];
maskLayer.frame = actualRect;
maskLayer.path = maskPath.CGPath;
roundedView.layer.mask = maskLayer;
roundedView.layer.masksToBounds = YES;
}
答案 0 :(得分:0)
使用Grouped TableView 这将帮助您实现目标。