我正在尝试制作代码,将玩家添加到基于对象的视图中,但是,我遇到了一些问题。
现在,如果我在playerList中运行带有4个已确认工作的Player对象的initView方法,我的滚动视图中只会出现3个UIViews,然后当我点击clear player按钮时,只会删除最后一个(第3个)UIView。
旁注,我的自定义按钮也没有出现在UIViews中,我有一个他们应该加载的图像,但它不起作用。
提前感谢您的帮助。
- (void)clearPlayers {
for (Player* i in self.playerList) {
[i.viewPane removeFromSuperview];
}
[self.playerList removeAllObjects];
}
- (void)initView {
int Loc = 0;
int Count = 1;
int margin = 5;
int height = 100;
for (Player *p in playerList) {
UIView *playerView = [[UIView alloc] initWithFrame:CGRectMake(0, Loc, 320.0, height)];
p.viewPane = playerView;
[playerView setBackgroundColor:[UIColor redColor]];
[scrollView addSubview:playerView];
UIButton *plus = [[UIButton alloc] initWithFrame:CGRectMake(200, 10, (height - 5), (height - 5))];
UIImage *buttonImage =[[UIImage alloc] initWithContentsOfFile:@"Metal_Plus_Up_2.png"];
[plus setBackgroundImage:buttonImage forState:UIControlStateNormal];
[p.viewPane addSubview:plus];
[plus release];
[playerView release];
Loc = Loc + (height + margin);
Count = Count + 1;
}
[scrollView setContentSize:CGSizeMake(320.0, (height * Count) + (margin * Count))];
}
答案 0 :(得分:1)
问题:您是否已验证从 initWithContentsOfFile 返回的UIImage是否为零?您可能需要完整路径而不仅仅是文件名
就UIViews没有被删除的那种古怪而言,你发布的所有内容看起来都很好。我唯一能想到的是,您可能没有将 retain 指定为 viewPane 属性的属性......