【问题标题】:UIView with rounded corners? [duplicate]带有圆角的 UIView? [复制]
【发布时间】:2011-05-26 07:07:19
【问题描述】:

可能重复:
UIView with rounded corners

我想要一个圆角而不是锐利的视图。有一些默认的方法吗?

【问题讨论】:

标签: iphone objective-c


【解决方案1】:

您可以通过操作视图的layer 及其masksToBounds 属性来做到这一点。我在UIView 类别中有以下代码:

#import <QuartzCore/QuartzCore.h>
...
- (void)addRoundedCornersWithRadius:(NSInteger)cornerRadiusInPixels
{
    self.layer.cornerRadius = cornerRadiusInPixels;
    self.layer.masksToBounds = YES;
    self.opaque = NO;
}

- (void)makeEndsRounded
{
    CGFloat minSide = fmin(self.bounds.size.width, self.bounds.size.height);
    [self addRoundedCornersWithRadius:minSide/2];
}

【讨论】:

  • 行“self.layer.masksToBounds = YES;”的目的是什么?
  • 子层也被剪裁了。要执行上述操作,您实际上只需要导入CALayer.h,但导入文件而不是框架没有任何好处。相反,像 CALayer.h 这样的头文件包含有帮助的 cmets,如果您有问题,可以查看这些。
  • 我还要说,在我有限的经验中,为 iPhone 制作圆形图层的动画成本很高。
【解决方案2】:

据我所知,UIViews 是由CGRects 指定的,因此它们在技术上始终是矩形的。如果你想要一个圆角效果,你需要一个圆角的背景图片。

【讨论】:

  • ok nvm 这个其他答案更好
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-12
  • 2013-05-15
  • 2012-07-11
相关资源
最近更新 更多