2012-11-13 25 views
1

我已通過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

每次打開文件夾時,都會創建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];

+0

謝謝我會測試它是否工作 – MasterRazer

+1

救了我的一天......謝謝:d – MasterRazer

+0

@NoahRaissi:嘿,我做JWFolders。如果您有任何問題或需要改進,請在回購上發佈問題,我很樂意爲您提供幫助。 :) –

相關問題