我正在开展uicollectionview。我想定制单元格,所以我为单元格采取单独的类文件。我从故事板中获取了一个单元格中的图像。我的问题是我想要舍入图像但图像形状转换为钻石。请建议我将这个钻石图像转换成圆形的方法。
见这里
故事板中的UICollectionView
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> </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> </xsl:text>
</xsl:template>
<xsl:template name="comma">
<xsl:if test="position() != last()">,</xsl:if>
</xsl:template>
</xsl:stylesheet>
,那么它正在运行。任何人都可以帮助我如何解决这个问题
答案 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;
}