collectionviewcell中的圆形imageview

时间:2015-07-05 09:52:22

标签: objective-c ios8 uicollectionview uicollectionviewcell

我正在开展uicollectionview。我想定制单元格,所以我为单元格采取单独的类文件。我从故事板中获取了一个单元格中的图像。我的问题是我想要舍入图像但图像形状转换为钻石。请建议我将这个钻石图像转换成圆形的方法。

见这里

enter image description here

故事板中的UICollectionView

enter image description here

self.temp_imgview.frame.size.width/2

如果我把硬代码100而不是<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:e="http://www.example.org"> <xsl:output method="text"/> <xsl:template match="/"> <xsl:apply-templates select="//e:EmployeeDetails[1]" mode="heading"/> <xsl:apply-templates select="//e:EmployeeDetails"/> </xsl:template> <xsl:template match="e:EmployeeDetails" mode="heading"> <xsl:for-each select="*"> <xsl:value-of select="local-name()"/> <xsl:call-template name="comma"/> </xsl:for-each> <xsl:text>&#10;</xsl:text> </xsl:template> <xsl:template match="e:EmployeeDetails"> <xsl:for-each select="*"> <xsl:value-of select="text()"/> <xsl:call-template name="comma"/> </xsl:for-each> <xsl:text>&#10;</xsl:text> </xsl:template> <xsl:template name="comma"> <xsl:if test="position() != last()">,</xsl:if> </xsl:template> </xsl:stylesheet> ,那么它正在运行。任何人都可以帮助我如何解决这个问题

2 个答案:

答案 0 :(得分:0)

根据故事板中的约束条件,awakeFromNib可能不是所有圆角的正确位置。那是因为imageView的框架可能不是最终的。

您可以尝试在layoutSubviews中添加圆角的代码。像这样:

- (void)layoutSubviews {
    [super layoutSubviews];

    [temp_imgview.layer setCornerRadius:self.temp_imgview.frame.size.width/2];
    temp_imgview.layer.borderWidth=0.5;
    temp_imgview.layer.masksToBounds = YES;
    temp_imgview.clipsToBounds=YES;

}

此外,在您的awakeFromNib中,您错过了super来电。

让我知道这是否适合您或需要更多帮助!祝你好运

<强>更新

您可以尝试使用图像的大小而不是帧。像这样:

- (void)layoutSubviews {
    [super layoutSubviews];

    [temp_imgview.layer setCornerRadius:self.temp_imgview.image.size.width/2];
    temp_imgview.layer.borderWidth=0.5;
    temp_imgview.layer.masksToBounds = YES;
    temp_imgview.clipsToBounds=YES;

}

如果这也不起作用,请尝试在iPhone和iPad上记录图像的边框,看看它们之间的区别

答案 1 :(得分:0)

尝试添加[self layoutIfNeeded],它对我有用。

- (void)layoutSubviews {
    [super layoutSubviews];
    [self layoutIfNeeded];
    imageView.layer.cornerRadius = CGRectGetWidth(imageView.bounds) / 2;
    imageView.layer.borderWidth = 0.1;
    imageView.clipsToBounds = YES;
}