gpt4 book ai didi

iphone - UIButton 和 UILabel 无法从 View 中移除

转载 作者:行者123 更新时间:2023-11-28 22:26:10 25 4
gpt4 key购买 nike

我有两个 UIButtons 添加到我的 View 中

[self.view addSubview:button1];
[self.view addSubview:button2];

这些按钮有一个选择器,在选择器中是一个菜单,用户可以在其中选择一个选项,并且该选项的字符串大小可能因按钮而异,因此我决定从 View 中删除按钮并使用不同的字符串重新加载它们大小和按钮大小。我已经从 API 调用中获取信息,因此我可以在其中设置按钮以显示我的 View 。我试着这样做:

[button1 removeFromSuperview]; 

还试过:

[self.button1 removeFromSuperView];

现在,对于 UILabel,我将它放在表格 View 单元格中,因为该字符串很长并且覆盖了我的 detailTextLabel。我正在为单元格使用 UITableViewCellStyleValue1。我尝试使用 NSLineBreakByWordWrapping 并将 numberOfLines 设置为 0 和 5,因此我决定将 UILabel 添加到表格 View 单元格中,这样我就可以控制字符串的长度,也可以将其环绕。由于每次隐藏带有 TableView 的单元格时,单元格都会在标签上写一遍又一遍,因此我决定在 if(cell == nil) 语句中创建标签。与按钮一样,当按钮时,此标签也会刷新按下并选择了一个菜单选项,因此我必须将其从 View 中删除,就像我对按钮所做的一样。由于某种原因,它不起作用。有人有任何想法/想法/建议吗?

我也 NSLog(@"%@",[button1 superview]) 在我删除它以确保按钮确实是(null)以及标签之后,它们确实在终端上显示为 null 但是按钮彼此重叠,实际上您仍然可以单击旧按钮,并且可以在新按钮下方看到它。标签也是如此。如果您需要任何代码,请告诉我,这个问题让我非常沮丧!

此外,我使用的是 iOS7,但出于某种原因,我的设备未显示状态栏。我试图在 info.plist -> 状态栏样式中更改它。我已经尝试了它的 3 个选项,但它们似乎都不起作用。我检查了我所有的 xib 文件并检查了我的 .m 文件中是否有任何隐藏的关键字。提前致谢。

最佳答案

既然你提到按钮正在调用 API,我猜你可能正在线程化那部分代码。如果是这种情况,那么它无法正常工作的原因可能是因为不允许您在后台线程中更新 UI。

尝试替换:

[button1 removeFromSuperview];

用这个:

[button1 performSelectorOnMainThread:@selector(removeFromSuperview) withObject:nil waitUntilDone:NO];

关于iphone - UIButton 和 UILabel 无法从 View 中移除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18908324/

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