UITableviewCell 左下角和右下角半径

库斯托夫·巴苏

我已经将左下角和右下角半径应用于我的UITableViewCell,它工作正常,但宽度cell减少containerViewcell。我在那个应用了约束这背后的原因是什么?

在此处输入图片说明

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
    RateChartTableViewCell *cell1 = (RateChartTableViewCell *)cell;

    if(indexPath.section == 0 && indexPath.row == 4)
    {
        [tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
        UIBezierPath *maskPath = [UIBezierPath 
    bezierPathWithRoundedRect:cell1.containerView.bounds byRoundingCorners:( UIRectCornerBottomLeft | UIRectCornerBottomRight) cornerRadii:CGSizeMake(10.0, 10.0)];
        CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
        maskLayer.frame = tableView.bounds;
        maskLayer.path  = maskPath.CGPath;
        cell1.containerView.layer.mask = maskLayer;
        cell1.containerView.clipsToBounds = YES;
    }
}
特朗杜克

这是因为单元格的大小已更改但maskLayer仍保持旧大小。在我看来,要修复它,每次更改单元格的大小时,请删除并maskLayer再次添加

RateChartTableViewCell

@interface RateChartTableViewCell : UITableViewCell

@property(nonatomic, strong) CAShapeLayer* maskLayer;
... other properties

@end

@implementation RateChartTableViewCell

- (void)configureBorders {
  UIBezierPath* maskPath =
  [UIBezierPath bezierPathWithRoundedRect:self.bounds
                        byRoundingCorners:(UIRectCornerBottomLeft |
                                           UIRectCornerBottomRight)
                              cornerRadii:CGSizeMake(10.0, 10.0)];
  _maskLayer = [[CAShapeLayer alloc] init];
  _maskLayer.frame = self.bounds;
  _maskLayer.path = maskPath.CGPath;
  self.layer.mask = _maskLayer;
  self.clipsToBounds = YES;
  self.backgroundColor = UIColor.redColor;
}

- (void)layoutSubviews {
  [super layoutSubviews];

  [_maskLayer removeFromSuperlayer];
  [self configureBorders];
}

- (void)prepareForReuse {
  [super prepareForReuse];

  [_maskLayer removeFromSuperlayer];
}

@end

视图控制器

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
  RateChartTableViewCell* cell = // Initialize cell

  // Do other things

  if (indexPath.section == 0 && indexPath.row == 4) {
    [tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone]; // You can move this line to |viewDidLoad|
    [cell configureBorders];
  }

  return cell;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何只为UIView的左下角,右下角和左上角设置cornerRadius?

来自分类Dev

我如何使imageView从左下角滚动到右下角?

来自分类Dev

如何判断BoxPoints(rect)输出中的最低点是边界框的右下角还是左下角?

来自分类Dev

角半径仅适用于视图的左上角和左下角

来自分类Dev

计算div的左下角

来自分类Dev

从右下角堆叠div

来自分类Dev

右下角的Extjs按钮

来自分类Dev

CSS浮动右下角

来自分类Dev

UINavigationController和屏幕左/左下角的触摸事件

来自分类Dev

右上角和左下角的半边框与CSS

来自分类Dev

div左上角和右下角的引号

来自分类Dev

JFrame移到屏幕的左下角

来自分类Dev

如何从左下角删除MapBox徽标?

来自分类Dev

将坐标更改为左下角

来自分类Dev

AnchorLayout卡在Kivy的左下角

来自分类Dev

JFrame移到屏幕的左下角

来自分类Dev

光标指向左下角

来自分类Dev

简单:网站左下角的浮动图片

来自分类Dev

ScrollViewer WPF右下角颜色

来自分类Dev

Android RelativeLayout:在右下角定位

来自分类Dev

将ImageView与LinearLayout的右下角对齐

来自分类Dev

将图像粘贴到右下角

来自分类Dev

jQuery从右下角开始动画

来自分类Dev

将表格移到右下角

来自分类Dev

JPanel显示在JFrame的右下角

来自分类Dev

div在右下角的图像上

来自分类Dev

transform:scale()使右下角的元素消失

来自分类Dev

SwiftUI位置文本右下角?

来自分类Dev

如何使海图图例与右下角对齐?