我有一个名为tagButton的UIButton和一个名为tagsView的UIScrollView。
在我的-(void)renderTags
方法中,
[[self.tagsView subviews] makeObjectsPerformSelector:@selector(removeFromSuperview)];
...清除甲板,然后遍历一对称为
allTags
和activeTags
的数组,为用户在应用中使用过的每个标签交替创建“亮”和“不亮”按钮。到目前为止,一切都很好。但是,当我将新创建的UIButton添加到视图中时:[self.tagsView addSubview:tagButton];
[tagButton release];
...第一次,视图上什么也没有发生,标记按钮没有显示。第二次我输入相同的字符串(触发
-toggleTag
而不是-createTag
,但最终使用相同的呈现方法)时,我收到控制台消息modifying layer that is being finalized = 0x82b3ec0
。但是,如果我注释掉
[tagButton release]
,一切都会正常。那么,有什么用呢?我以为在超级视图中添加子视图会使超级视图得以保留。除了告诉下次下次渲染标签列表时将其删除,我将不再处理该按钮,因此看来视图控制器应该释放它。 最佳答案
您的问题可能是您没有保留标签Button的开头,因此不需要释放它...希望有帮助
关于iphone - 添加 subview 然后释放它:“修改正在完成的 View ”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3212994/