viewDidLayoutSubviews被称为当标签更改(Xcode中)(SWIFT)(viewD

2019-10-22 09:00发布

我有一个标签,切换按钮,在我的代码的动画。 当我按下切换按钮 - >动画开始,标签的变化。 下面是我的代码示例。

override func viewDidLayoutSubviews() {
println("viewDidLayoutSubviews is called")
// Initial state of my animation.
     }

 @IBAction func Toggled(sender: AnyObject) {
    CallTextChange() 
   // Two different Animations        
     }

 func CallTextChange() { // Change text here}

我每次更改标签viewDidLayoutSubviews文本被调用。 有没有办法阻止我每次更改标签时调用它?

Answer 1:

我发现我的问题的答案。

当我们从由Xcode中提供的对象创建的UIImage通过拖和滴,该图像是暂时放置在它被放置静态。 因此,在中间的动画时,当viewDidLayoutSubviews被称为图像被放置在静电的场所。 所以UIImage的有以编程方式创建。

CreateImage.image = UIImage(named: "Image.png")
CreateImage = UIImageView(frame: CGRect(x: 0, y: 0, width: CreateImage.image!.size.width/6, height: CreateImage.image!.size.height/6))
self.view.addSubview(CreateImage)


Answer 2:

试图通过在功能一个布尔标志值



Answer 3:

我认为,当你改变的文本和的UILabel它将改变其固有的内容大小,反过来会通知系统重新布局视图层次结构。 因此,它似乎是不可避免的viewDidLayoutSubviews将被调用。

要么你把一个布尔标志,使您最初的动画代码执行一次只或您的代码移到像viewDidLoad中()方法的其他地方。



文章来源: viewDidLayoutSubviews is called when label changes (xcode) (swift)