我的iPhone应用中存在以下问题。
我的IB中有4个按钮也链接到我的UIViewController
(IBOutlet
)
例如,当我使用[self.btnAfvalSoorten setHidden:YES];
隐藏第二个按钮 AfvalSoorten 时,它会消失,这就是我想要的,但是当我在模拟器上调试应用程序时,我仍然得到了按钮空间。 / p>
我该怎样摆脱它? 贝娄有一个例子。
故事板上是否有按钮选项?夹在一起?
答案 0 :(得分:16)
您应该使用自动布局。否则,这是一个新屏幕尺寸的噩梦。
使用自动布局,您可以按编程方式执行操作:使用某些约束设置按钮,然后当您决定隐藏按钮时,删除不需要的约束。它灵活而强大,但不是初学者最简单的方法。
一种简单的方法是使用额外的约束。例如,如果您有按钮1,2和3(参见屏幕截图),并且您打算删除按钮2,则可以在3和1之间添加额外约束:
该约束的优先级应该低于其他约束(在我的示例中为250)(默认为1000)。这意味着当按钮2就位时(具有更高的优先级约束),将不会应用约束。
然后,删除按钮而不是隐藏它。
[self.button removeFromSuperview];
当你隐藏按钮时,布局系统仍然会考虑做出决定,这会使布局变得更加复杂。如果你想保持按钮,确保它在属性声明中使用strong
修饰符。
答案 1 :(得分:3)
答案 2 :(得分:2)
针对上述情况的更好方法 - 您无需设置任何自动布局或框架:)
使用UITableView
并在其中创建包含UIButtons
的自定义单元格。
将UITableViewCellSelectionStyle
设为None
此处所有单元格的按钮背景相同
创建一个包含上述按钮标题的数组
当您想要隐藏按钮时,只需将其从阵列中删除即可。
答案 3 :(得分:0)
你刚刚把它隐藏起来。 您必须根据需要设置框架。 要么 您可以设置autolayout。
答案 4 :(得分:0)
也许在IB中有autoLayout的解决方案,但我不确定。以编程方式,您可以按顺序将所有按钮添加到数组中。无论何时你隐藏一个按钮,你都可以通过按钮数组循环,每次找到一个未隐藏的按钮时,你可以将框架上的y坐标设置为一个值,然后根据需要增加该值,以便下一个不隐藏将根据最后使用的位置放置。
答案 5 :(得分:0)