在UIView框架内绘制圆圈
我想在UITableViewCell中画一个圆圈。
为了使定位更容易,我决定使用界面生成器放置UIView,设置约束,然后从该UIView内的代码中绘制圆圈。
这应该是这样的:
但是,我在正方形视图中间画圆圈时遇到了问题。 我想出了这个解决方案,但对我来说,它看起来更像是解决方法。 内
tableView(tableView:UITableView,cellForRowAtIndexPath indexPath:NSIndexPath)
let xCoord = cell.pageBadgeView.center.x - cell.pageBadgeView.frame.origin.x
let yCoord = cell.pageBadgeView.center.y - cell.pageBadgeView.frame.origin.y
let circlePath = UIBezierPath(arcCenter: CGPoint(x: xCoord ,y: yCoord), radius: CGFloat(20), startAngle: CGFloat(0), endAngle:CGFloat(M_PI * 2), clockwise: true)
pageBadgeView基本上是应该作为绘图圆的参考点的UIView。
我的问题是:
为什么不使用center.x和center.y,为什么我必须减去中心和原点的值才能得到中间坐标?
尝试这样的事情
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) {
var someName = UIView()
var someNameRadius = 25.0
let cell = tableView.dequeueReusableCellWithIdentifier("experienceCell", forIndexPath: indexPath) as! YourCellClass
someName.backgroundColor = UIColor.clearColor()
someName.layer.borderWidth = 3.0
someName.layer.borderColor = UIColor.redColor().CGColor
someName.center = cell.contentView.center
someName.frame.size = CGSize(width: someNameRadius*2, height: someNameRadius*2)
someName.layer.cornerRadius = someNameRadius // Note, this is half of the width of the view's width
cell.contentView.addSubView(someName)
return cell
}
以UIView
绘制圆圈。 设置视图Corner radius of layer
属性的Corner radius of layer
。 为图层设置color
。
相应地快速修改您的代码。
let yCoord = (cellheight - circleview height)/2
试试让你的视图变成圆形
_circleView.layer.cornerRadius = _circleView.frame.size.width/2;
_circleView.layer.borderColor = [UIColor redColor].CGColor;
_circleView.layer.borderWidth = 2;
_circleView.clipsToBounds = YES;
链接地址: http://www.djcxy.com/p/60509.html
上一篇: Drawing circle inside UIView frame
下一篇: How to detect tableView cell touched or clicked in swift