2017-07-08 73 views
1

我有一个带有自定义单元格的UITableView。每个单元格的结构都是这样的:我有contentView,在这个contentView中我有backView(带有白色背景和角度半径16.0的简单UIView),在这个backView中,我有一个imageView和一些图片。ClipsToBounds在单元格中不起作用

我想要的是让这个图像视图(在他的父母的UIView - backView边框内)。而且它不以这种方式工作。

的代码是(从ImageCell.swift)很简单:

self.backView = UIView() 
    self.backView.backgroundColor = UIColor.white 
    self.backView.translatesAutoresizingMaskIntoConstraints = false 
    self.backView.layer.cornerRadius = 16.0 
    self.contentView.addSubview(backView) 

    self.picture = UIImageView() 
    self.picture.translatesAutoresizingMaskIntoConstraints = false 
    self.picture.contentMode = UIViewContentMode.scaleAspectFill 
    self.picture.backgroundColor = UIColor.gray 
    self.picture.clipsToBounds = true 
    self.backView.addSubview(picture) 

    let constraintPicTop = NSLayoutConstraint(item: picture, attribute: .top, relatedBy: .equal, toItem: contentView, attribute: .topMargin, multiplier: 1.0, constant: -6) 
    let constraintPicLeft = NSLayoutConstraint(item: picture, attribute: .left, relatedBy: .equal, toItem: backView, attribute: .leftMargin, multiplier: 1.0, constant: -8) 
    let constraintPicRight = NSLayoutConstraint(item: picture, attribute: .right, relatedBy: .equal, toItem: backView, attribute: .rightMargin, multiplier: 1.0, constant: 8) 
    constraintBottomPic = NSLayoutConstraint(item: picture, attribute: .bottom, relatedBy: .lessThanOrEqual, toItem: contentView, attribute: .topMargin, multiplier: 1.0, constant: 150) 

我不知道图像的大小提前,所以constraintBottomPic值在cellForRowAt功能更新。

它的工作,除了这个形象没有角逐(我相信它应该是)。

(不幸的是,我无法为UIImageView设置cornerRadius)。

更新:找到解决方案。看来我必须直接在所有父视图中设置“clipsToBounds”为true(contentView和backView,在我的情况下)。

+0

clipsToBounds应该为图像视图的父视图添加self.backView.clipsToBounds = true。希望能帮助到你。 – luckyShubhra

回答

1

应设置更高级别的容器视图的clipsToBounds财产(如您的细胞的contentView

+1

是的,我发现我自己,但谢谢你的回应。 – lithium

1

应用imageView.layer.maskToBounds = YES;

应用此查看或您要设定圆角半径ImageView的。

正如你所提到的圆角半径,以您的观点,你需要设置你的观点

相关问题