从UIScrollView中删除UIViews时遇到问题

时间:2011-05-30 15:27:22

标签: objective-c cocoa-touch oop

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

现在,如果我在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))];
}

1 个答案:

答案 0 :(得分:1)

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

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

相关问题