我有一个名为tagButton的UIButton和一个名为tagsView的UIScrollView。

在我的-(void)renderTags方法中,

[[self.tagsView subviews] makeObjectsPerformSelector:@selector(removeFromSuperview)];


...清除甲板,然后遍历一对称为allTagsactiveTags的数组,为用户在应用中使用过的每个标签交替创建“亮”和“不亮”按钮。到目前为止,一切都很好。但是,当我将新创建的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/

10-09 02:06