1

ipad のメイン ビューに 4 つのサブビュー (UIScrollView、UITableView) を追加し、各ビューには独自のデータがあります。
Marco ビューでは、3 秒ごとにサーバーからデータをリロードして、Marco ビューを更新しようとしています。
最初の写真として..
ここに画像の説明を入力

popoverViewで1つを削除すると、ipadのメインビューに3つのマルコアイコンが設定されます。
popoverView のアイコンは実際には削除されますが、メイン ビューには 3 つのアイコンが表示されます。
二枚目と三枚目の写真のように...
ここに画像の説明を入力

ここに画像の説明を入力

バックグラウンドから削除してから、アプリを開く必要があります。4
番目の写真のように、正しいビュー
になります[marco_scrollview setNeedsDisplay]
しかし、それはうまくいきません..
事前に感謝します..これ
がMarcodataを取得するための私のコードです:

- (void)getTheMacroURLData{
    //[self.view setNeedsDisplay];
//    [marco_scrollview setNeedsDisplay];
    self.macroList = nil;
    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
    EnvoTouchAppDelegate *appDelegate = (EnvoTouchAppDelegate *)[[UIApplication sharedApplication] delegate];
    struct sockaddr_in Addr;
    bzero(&Addr, sizeof(Addr));
    Addr.sin_len = sizeof(Addr);
    Addr.sin_family = AF_INET;
    SCNetworkReachabilityRef target = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *) &Addr);
    SCNetworkReachabilityFlags flags;
    SCNetworkReachabilityGetFlags(target, &flags);
    if (flags & kSCNetworkReachabilityFlagsIsWWAN){
        //Serial Number not save in the keychain now
        NSString *theNewURLString = [NSString stringWithFormat:eGetAllMacrosSettingURL3G,[userDefaults objectForKey:@"ecsn"],appDelegate.udid];
        NSURL *theNewURL = [NSURL URLWithString:theNewURLString];
        self.macroList = [NSMutableArray arrayWithContentsOfURL:theNewURL];
    }
    if (flags & kSCNetworkFlagsReachable){
        NSString *theNewURLString = [NSString stringWithFormat:eGetAllMacrosSettingURLWiFi,appDelegate.ipString,appDelegate.udid];
        NSURL *theNewURL = [NSURL URLWithString:theNewURLString];
        self.macroList = [NSMutableArray arrayWithContentsOfURL:theNewURL];
    }
    int k=0;
    for (int i=0; i<[self.macroList count]; i++) {
        int j=i%9;
        if (j==0) {
            k++;
        }
        UIButton *iconButton=[UIButton buttonWithType:UIButtonTypeCustom];
        NSString *picString = [[self.macroList objectAtIndex:i] valueForKey: @"pid"];
        UIImage *buttonImage = [UIImage imageNamed:picString];

        [iconButton setImage:buttonImage forState:UIControlStateNormal];
        [iconButton setTag:i];
        [iconButton addTarget:self action:@selector(exeMacro:) forControlEvents:UIControlEventTouchUpInside];  
        [iconButton setFrame:CGRectMake(30+(i%9*80), 17+((k-1)*70), 48, 48)];   
        //[self.view addSubview:iconButton];
        [marco_scrollview addSubview:iconButton];
        if ([self.macroList count] > 18) {
            [marco_scrollview setContentSize:CGSizeMake(320, 525 + (([self.macroList count]/4 - 4) * 70) )];
        }
    }
    [marco_view addSubview:marco_scrollview];
}

そして、3秒ごとにデータをリロードしようとします..なぜMarco Viewを更新しないのかわかりません..

ここに画像の説明を入力

4

1 に答える 1

0

表示は、どこかでテーブルビューを使用しているかのように見えます。その場合、テーブル ビューで reloadData メソッドを呼び出していますか?

于 2011-03-27T14:24:30.003 に答える