SetMasksToBounds:YES时图像消失

时间:2015-04-03 01:18:19

标签: ios user-interface calayer

引用this answer,我试图让UIImageView显示一个圆形图像。我生成了一个蒙版,并尝试使用该图像来掩盖它,但这也没有用。

当我试图掩盖图像或改变角落时,没有任何反应。 这就是: [proPic.layer setCornerRadius:proPic.frame.size.width/2];

当我致电[proPic.layer setMasksToBounds:YES];时,图像完全消失。当我尝试使用third party library来掩盖图像时也是如此。

有什么建议吗?

编辑:

//Profile Picture
proPic = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"DummyProPic"]];
//Mask Profile Picture to be circular
[proPic.layer setCornerRadius:proPic.frame.size.width/2];
//With this line added, the picture disappears
//Without this line, nothing is done to mask the image
[proPic.layer setMasksToBounds:YES];

[self.contentView addSubview:proPic];
[proPic mas_makeConstraints:^(MASConstraintMaker *make) {

    make.top.equalTo(self.contentView.mas_top).with.offset(padding.top);
    make.centerX.equalTo(self.contentView.mas_centerX);
    make.height.equalTo(@120);
    make.width.equalTo(@120);
}];

3 个答案:

答案 0 :(得分:0)

您应该删除.layer以屏蔽边界。尝试:

[proPic setMasksToBounds:YES];

答案 1 :(得分:0)

[proPic.layer setCornerRadius:60];
[proPic.layer setMasksToBounds:YES];

这很有效,它不像proPic.frame.size.width/2部分。

答案 2 :(得分:0)

如果setMasksToBounds出现问题,请删除屏蔽,然后尝试使用以下

proPic.clipsToBounds=YES;

它可能对你有所帮助。