我在视图中添加了两个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但是按钮相互重叠,实际上您仍然可以单击旧按钮,然后您可以在新按钮下方看到它。标签也是如此。如果您需要任何代码让我知道,这个问题让我非常沮丧!
另外,我在iOS7上,由于某些原因我的设备没有显示状态栏。我试图在info.plist中更改它 - >状态栏样式。我已经尝试了它拥有的3个选项,但它们似乎都没有用。我检查了所有xib文件并检查了我的.m文件中的任何隐藏关键字。提前谢谢。
答案 0 :(得分:2)
由于您提到按钮正在进行API调用,我猜您可能正在线程化该段代码。如果是这种情况,那么它不起作用的原因可能是因为您不允许在后台线程中更新UI。
尝试更换:
[button1 removeFromSuperview];
用这个:
[button1 performSelectorOnMainThread:@selector(removeFromSuperview) withObject:nil waitUntilDone:NO];
答案 1 :(得分:0)
我深深建议使用故事板,他们使用UI更容易!它们还允许您使用约束来查看UI元素对较长文本或旋转屏幕的反应等...
那个苹果教程:
通过一个带故事板的简单应用程序!