我该如何绘制一个自定义的UIView,它实际上只是一个球(一个2D圆)?我是否只需重写drawRect方法?有人能给我看一下画蓝色圆圈的代码吗?
另外,是否可以在类本身中更改该视图的框架?或者我需要更改来自不同类的框架?
(只是尝试设置一个弹跳的球)
发布于 2011-07-06 05:56:19
你可以用QuartzCore做这样的事情--
self.circleView = [[UIView alloc] initWithFrame:CGRectMake(10,20,100,100)];
self.circleView.alpha = 0.5;
self.circleView.layer.cornerRadius = 50; // half the width/height
self.circleView.backgroundColor = [UIColor blueColor];
发布于 2014-07-13 23:38:46
这是使用UIBezierPath的另一种方法(可能为时已晚^^)创建一个圆并用它屏蔽UIView,如下所示:
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];
view.backgroundColor = [UIColor blueColor];
CAShapeLayer *shape = [CAShapeLayer layer];
UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:view.center radius:(view.bounds.size.width / 2) startAngle:0 endAngle:(2 * M_PI) clockwise:YES];
shape.path = path.CGPath;
view.layer.mask = shape;
发布于 2016-06-28 23:32:08
我对Swift扩展的贡献:
extension UIView {
func asCircle() {
self.layer.cornerRadius = self.frame.width / 2;
self.layer.masksToBounds = true
}
}
只需调用myView.asCircle()
即可
https://stackoverflow.com/questions/6589265
复制相似问题