目标c-从UIScrollView中删除UIViews时出现问题



我正在尝试编写代码,将玩家添加到基于对象的视图中,但我遇到了一些问题。

目前,如果我在playerList中使用4个已确认工作的Player对象运行initView方法,则只有3个UIView会出现在我的滚动视图中,然后当我单击清除播放器按钮时,只有最后一个(第三个)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))];
}

问题:您是否验证了从initWithContentsOfFile返回的UIImage不是nil?您可能需要完整的路径,而不仅仅是文件名

就UIViews没有被删除的古怪之处而言,在我看来,你发布的所有内容都很好。我唯一能想到的是,也许您没有将retain指定为viewPane属性的属性。。。

最新更新