Xcode IB: UIButton hidden but have still buttons space

后端 未结 6 1746
悲哀的现实
悲哀的现实 2021-02-15 18:22

I have the following issue in my iPhone app. I have 4 buttons in my IB also linked to my UIViewController (IBOutlet) When I for example hide the second

6条回答
  •  时光说笑
    2021-02-15 18:49

    You should use autolayout. Otherwise it's a nightmare with the new screen sizes.

    With autolayout you can do what you ask programmatically: setup the buttons with certain constraints and then when you decide to hide the button remove the constraints that are not needed. It's flexible and powerful but not the easiest way for a beginner.

    One simple way to do it is with additional constraints. For instance, if you have buttons 1, 2 and 3 (see screenshot), and you plan to remove button 2, you can add an extra constraint between 3 and 1:

    enter image description here

    That constraint should have less priority (250 in my example) than the others (1000 by default). That mean that the constraint won't be applied when button 2 is in place (with higher priority constraints).

    Then, remove the button instead of hiding it.

    [self.button removeFromSuperview];
    

    When you hide the button it still considered by the layout system to take decisions, and it makes layout more complex. If you want to keep the button around make sure it's using strong modifier in the property declaration.

提交回复
热议问题