首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用CCBReader加载场景

使用CCBReader加载场景
EN

Stack Overflow用户
提问于 2014-11-08 06:56:41
回答 1查看 187关注 0票数 0

我有一个当用户单击按钮时打开的CCScrollView。我还想“重新初始化”处理这个CCScrollView的UI元素的类。我通过调用[CCBReader load:@"Shop"]; Shop作为这个CCScrollView的自定义类来实现这一点。Shop设置CCScrollView的所有标签和按钮。

打开CCScrollView (位于MainScene中):

代码语言:javascript
复制
-(void)openShop
{
        [CCBReader loadAsScene:@"Shop"];
        CCScrollView *scroll = [[CCScrollView alloc]initWithContentNode:shopNode];
        [shopNode setContentSizeInPoints:(CGSizeMake(320, 1000))];
        [scrollContainer addChild:scroll z:0 name:@"scrollName"];
        [scroll setContentSizeInPoints:(CGSizeMake(320.0, 370.0))];
        [scroll setHorizontalScrollEnabled:NO];
        [scroll setPosition:(CGPointMake(0, 70))];
}

Shop的初始化方法

代码语言:javascript
复制
-(id)init
{
    if ([super init]) {
        if (i == 0) {
            cell1.string = @"hello";
            i++;
        } else {
            cell1.string = @"ffff";
        }
    }
    return self;
}

所以我想要做的是,当我第一次运行程序,所有的类都被初始化时,cell1的字符串是"hello",它将1加到i。然后,当我打开CCScrollView时,Shop应该再次初始化,因为i是1,cell的字符串应该变成"ffff“。问题是,它不会改变我可以放在显示随机文本的NSLog中的cell1.的字符串,这将非常好地工作,但是cell1的字符串不会改变,为什么呢?

EN

回答 1

Stack Overflow用户

发布于 2014-11-08 17:18:25

每次打开滚动视图时,都会创建一个新的Shop实例。之前的'i‘值设置为1的实例此时会被释放,所以每次重新开始时i都是0。

快速的解决方法是让i成为@接口之外的一个静态变量。我强烈建议将其重命名。

代码语言:javascript
复制
static int index = 0;

-(id)init
{
    if ([super init]) {
        if (index == 0) {
            cell1.string = @"hello";
            index++;
        } else {
            cell1.string = @"ffff";
        }
    }
    return self;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26811459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档