我已通过JWFolders在我的应用程序中创建了一个文件夹。我的问题是我已经设置了一些代码来从parse.com获取一些字符串,如果没有连接,它会在CLTickerview中显示一些文本。但是,如果我打开文件夹几次,每次打开文件夹时文本都会重复。这里有一些图片:
第一次打开后:
大约5次后:
10次后:
我的代码:
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中的内容?或者类似的东西?
对我有什么建议或解决方案吗?
感谢。
答案 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];