我有一个非常简单的ViewController,它包含以下内容:
@interface ServingsView : UIViewController
@property (retain, nonatomic) IBOutlet UILabel *labelTitle;
@property (retain, nonatomic) IBOutlet UILabel *labelContent;
@property (retain, nonatomic) IBOutlet UIButton *buttonSelect;
我没有为此控制器的m文件添加任何代码。
现在,我正在创建此viewcontroller并将其视图添加到滚动视图:
for (NSSubArray * Choice in currentItem.ItemsArray)
{
stView * ChoiceView=[[stView alloc]initWithNibName:@"stView" bundle:nil];
ChoiceView.view.tag=1515;
[mScrollView addSubview:ChoiceView.view];
ChoiceView.view.frame=CGRectMake(0, [self getMinimumHeight]+h*ChoiceView.view.frame.size.height , 320, ChoiceView.view.frame.size.height);
ChoiceView.labelTitle.text=Choice.ArrayName;
[ChoiceView.buttonSelect addTarget:self action:@selector(onSubservingItemClicked:) forControlEvents:UIControlEventTouchUpInside];
ChoiceView.buttonSelect.tag=h;
h++;
increaseHeight+=ChoiceView.view.frame.size.height;
// here is the problem:
[ChoiceView release];
}
现在,我没有在任何地方使用ChoiceView。发生的事情是,按钮甚至没有显示,并且该视图没有任何响应。当在其环境中使用视图滚动时,我得到了不同类型的异常。有时它的CALayer异常,有时是stView异常。当我删除释放线时,一切正常。
我甚至创建了一个它没有发生过的测试项目,所以我在这里遗漏了一些东西。
答案 0 :(得分:0)
不要做[mScrollView addSubview:ChoiceView.view];
之类的事情。如果您在视图控制器包含上查看Apple视频,您会看到它们将其描述为不一致的视图层次结构:https://developer.apple.com/videos/wwdc/2011/?id=102
在定义的滚动视图中创建视图层次结构的视图部分,或者创建使用提供的父/子方法的容器视图控制器。
答案 1 :(得分:0)
Apple - 去图......