0

我用 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);
4

1 回答 1

0

据我所知,这可能是两个问题之一:

您正在使用组合时看起来很奇怪的颜色进行绘制。灰色之上的亮绿色可能使它看起来很奇怪。

此外,对于您的 shadowConst 和 heightFactor,请注意不要分割,因此框架的大小或位置为 0.5。因此,例如,如果您想要的宽度大小为 equals [size].5,它将绘制模糊的一面。如果将框架的 x 或 y 值设置为[value].5

于 2012-07-28T16:49:15.113 回答