文件夹中的重复文字?

时间:2012-11-13 18:47:12

标签: iphone objective-c ios parsing ticker

我已通过JWFolders在我的应用程序中创建了一个文件夹。我的问题是我已经设置了一些代码来从parse.com获取一些字符串,如果没有连接,它会在CLTickerview中显示一些文本。但是,如果我打开文件夹几次,每次打开文件夹时文本都会重复。这里有一些图片:

第一次打开后:enter image description here

大约5次后:enter image description here

10次后:enter image description here

我的代码:

PFQuery *query = [PFQuery queryWithClassName:@"TestObject"];
[query getObjectInBackgroundWithId:@"object1"
                             block:^(PFObject *textu, NSError *error) {
                                 if (!error) {
                                     // start the tickerview
                                    CLTickerView *ticker = [[CLTickerView alloc] initWithFrame:CGRectMake(0, 35, 320, 35)];
                                    ticker.marqueeStr = [textu objectForKey:@"text"];
                                     ticker.marqueeFont = [UIFont systemFontOfSize:26];


                                     [self.view addSubview:ticker];

                                    // if there's connection

                                 } else {
                                     // Log details of our failure
                                     CLTickerView *ticker = [[CLTickerView alloc] initWithFrame:CGRectMake(0, 35, 320, 35)];
                                     ticker.marqueeStr = @"Keine Internet Verbindung";
                                     ticker.marqueeFont = [UIFont systemFontOfSize:26];

                                     [self.view addSubview:ticker];

                                     //if there's no connection;

                                 }

                             }];

有没有办法在关闭文件夹之后删除tickerview中的内容?或者类似的东西?

对我有什么建议或解决方案吗?

感谢。

1 个答案:

答案 0 :(得分:1)

每次打开文件夹时,您都会创建CLTickerView *ticker的单独实例,并使用此行[self.view addSubview:ticker];将视图添加到子视图中。如果您只想添加一次,则需要在不会重复调用alloc方法的地方创建自动收报机。

viewDidLoad左右创建,

CLTickerView *ticker = [[CLTickerView alloc] initWithFrame:CGRectMake(0, 35, 320, 35)];

然后将其用作,

PFQuery *query = [PFQuery queryWithClassName:@"TestObject"];
[query getObjectInBackgroundWithId:@"object1"
                             block:^(PFObject *textu, NSError *error) {
                                 if (!error) {
                                     // start the tickerview

                                     ticker.marqueeStr = [textu objectForKey:@"text"];
                                     ticker.marqueeFont = [UIFont systemFontOfSize:26];
                                     [self.view addSubview:ticker];

                                    // if there's connection

                                 } else {
                                     // Log details of our failure
                                     ticker.marqueeStr = @"Keine Internet Verbindung";
                                     ticker.marqueeFont = [UIFont systemFontOfSize:26];

                                     [self.view addSubview:ticker];

                                     //if there's no connection;

                                 }

                             }];

请记住,无论何时拨打CLTickerView *ticker = [[CLTickerView alloc] initWithFrame:CGRectMake(0, 35, 320, 35)];,它都会创建单独的副本,并且在创建新副本后您无法访问上一个副本。

每当您想删除它时,只需使用[ticker removeFromSuperview];

即可