我尝试使用CGPoint和CGFloat创建一个圆圈。但我希望根据使用的设备,siz中的圆圈不同。我改变了所有我的尺寸类以反映我想要的尺寸,我希望,它会认识到但是它并没有。
WhiteBar是我主视图中的一个UIView,我使用SB创建并测试我的视图在大小类中被更改,我设置了背景颜色并看到了我想要的设置
我的打印行显示了最小的宽度和高度
@IBOutlet var WhiteBar: UIView!
var WhiteCircle = CAShapeLayer()
WhiteCircle.strokeColor = UIColor.whiteColor().CGColor
WhiteCircle.fillColor = UIColor.clearColor().CGColor
WhiteCircle.lineWidth = 15
WhiteCircle.strokeStart = 0
WhiteCircle.strokeEnd = 1
let WhiteCenterPoint = CGPoint (x: WhiteBar.bounds.width / 2, y: WhiteBar.bounds.height / 2)
let WhiteCircleRadius : CGFloat = (WhiteBar.bounds.height / 2 - WhiteCircle.lineWidth / 2)
println(WhiteBar.bounds.width) // outputs the smallest size of all my size classes
println(WhiteBar.bounds.height) // outputs the smallest size of all my size classes
var WhiteCirclePath = UIBezierPath(arcCenter: WhiteCenterPoint, radius: WhiteCircleRadius, startAngle: CGFloat(-0.5 * M_PI), endAngle: CGFloat(1.5 * M_PI), clockwise: true)
WhiteCircle.path = WhiteCirclePath.CGPath
WhiteBar.layoutIfNeeded()
WhiteBar.layer.addSublayer(WhiteCircle)
编辑:似乎根据w设置大小:任何h:任何大小的类。
提前致谢, 王牌
答案 0 :(得分:0)
在viewDidAppear或viewDidLayoutSubviews之后才会应用大小类(或任何自动布局更改)。您需要将此代码移动到其中一个代码中。您正在查看视图的界限,因为它是从Interface Builder文档(xib或storyboard)中加载的。在生命周期事件发生之前,您永远不应该检查框架或边界。