Я новичок в Swift. Я хочу создать приложение с движущимся подзоном. Я тестирую приложение, и когда я касаюсь кнопки, subview движется с правильным значением, но когда родительский UIView обновляется из-за изменения метки, subview возвращается к исходной координате, которую я установил в раскадровке. Я использую основную графику для рисования круга. Я хочу переместить круг на экране, нажав кнопку. Как я могу решить эту проблему?Обновление UIView делает хэш выравнивания subview/Swift
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)
}
}
проблема такая же. Когда основной UIView обновляется, subview, в котором круг возвращается назад. Между двумя обновлениями подчиненное устройство перемещается правильно, но когда обновляется uiview, subview, что содержится в uiview, возвращается к координации координат. По пути, спасибо! –