0

我有两个 UIButtons 添加到我的视图中

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

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

[button1 removeFromSuperview]; 

也试过:

[self.button1 removeFromSuperView];

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

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

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

4

2 回答 2

2

Since you mentioned the button was making an API call I am guessing you may be threading that section of code. If that's the case then the reason its not working is likely because you are not allowed to update the UI in a background thread.

Try replacing:

[button1 removeFromSuperview];

with this:

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

于 2013-09-20T03:46:54.157 回答
1

我强烈建议使用故事板,它们使 UI 的工作变得更加容易!它们还允许您使用约束来查看您的 UI 元素如何对较长的文本或屏幕旋转等做出反应......

那个苹果教程:

https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/SecondiOSAppTutorial/Introduction/Introduction.html

通过一个带有故事板的简单应用程序!

于 2013-09-20T03:32:56.443 回答