我用UIBezierpath创建了一个圆角矩形,对我来说非常有用。只有一个问题是矩形的圆角具有一种混叠效果。 这是一张图片
我像这样创建圆角矩形:
CGFloat radius = 12;
CGRect frame1 = CGRectMake(self.bounds.origin.x, self.bounds.origin.y+(self.bounds.size.height/heightFactor), self.bounds.size.width-shadowConst, self.bounds.size.height-(self.bounds.size.height/heightFactor)-shadowConst);
CGRect frame2 = CGRectMake(self.bounds.size.width-(self.bounds.size.width/widthFactor), self.bounds.origin.y+(self.bounds.size.height/(heightFactor*2)), (self.bounds.size.width/widthFactor)-shadowConst, (self.bounds.size.height/heightFactor));
UIBezierPath *result =
[UIBezierPath bezierPathWithRoundedRect: frame1 cornerRadius:radius];
[result appendPath:
[UIBezierPath bezierPathWithRoundedRect: frame2 cornerRadius:radius]];
[result fill];
[result addClip];
CGContextDrawLinearGradient(context, gradient2, CGPointMake(0, 0), CGPointMake(0, self.bounds.size.height), 0);
答案 0 :(得分:0)
据我所知,这可能是两个问题之一:
您使用的颜色在组合时看起来很奇怪。灰色的亮绿色可能会让它看起来很奇怪。
另外,对于你的shadowConst和heightFactor,要注意你没有划分,所以框架的大小或位置是0.5。因此,例如,如果宽度所需的大小等于[size].5
,它将绘制一个模糊的一面。如果将帧的x或y值设置为[value].5