gpt4 book ai didi

ios - 更新 UIView 生成 subview 对齐/Swift 的哈希值

转载 作者:行者123 更新时间:2023-11-30 14:16:09 25 4
gpt4 key购买 nike

我是 Swift 新手。我想制作一个带有移动 subview 的应用程序。我正在测试该应用程序,当我按下按钮时, subview 会以正确的值移动,但是当父 UIView 由于更改标签而更新时, subview 会跳回我在 Storyboard中设置的原点坐标。我用核心图形来画圆。我想通过点击按钮来移动屏幕上的圆圈。我该如何解决这个问题?

    class ViewController: UIViewController {

@IBOutlet weak var movingItem: MovingItem! /* inheritance from UIView */

@IBAction func move() {

self.movingItem.frame = CGRect(x: movingItem.frame.origin.x + 5.0,
y: movingItem.frame.origin.y,
width: movingItem.frame.width,
height: movingItem.frame.height)
}

override func viewDidLoad() {

self.movingItem.frame = CGRect(x: 0.0, y: 0.0, width: 50.0, height: 50.0)
self.movingItem.setNeedsDisplay()
}

//more code...

}



@IBDesignable
class MovingItem: UIView {

override func drawRect(rect: CGRect) {

var context = UIGraphicsGetCurrentContext()
CGContextBeginPath(context)

var rectForCircle = CGRect(x: 0.0, y: 0.0, width: 50.0, height: 50.0)
CGContextAddEllipseInRect(context, rectForCircle)

UIColor.redColor().setFill()
CGContextDrawPath(context, kCGPathFill)

}

}

最佳答案

尝试代替

var rectForCircle = CGRect(x: 0.0, y: 0.0, width: 50.0, height: 50.0)
CGContextAddEllipseInRect(context, rectForCircle)

像这样:

CGContextAddEllipseInRect(context, self.frame)

并插入行

self.movingItem.setNeedsDisplay()

之后

self.movingItem.frame = CGRect(x: movingItem.frame.origin.x + 5.0, 
y: movingItem.frame.origin.y,
width: movingItem.frame.width,
height: movingItem.frame.height)

关于ios - 更新 UIView 生成 subview 对齐/Swift 的哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31145732/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com