2011-03-03 3 views
1

ipad의 기본보기에 4 개의 하위보기 (UIScrollView, UITableView)를 추가했으며 각보기에는 자체 데이터가 있습니다.
Marco보기에서 서버에서 3 초마다 데이터를 다시로드하여 Marco View를 새로 고칩니다. 내가 popoverView 하나를 삭제하면 첫번째 그림과 같은
..
enter image description hereIPad - ipad에서 하위 뷰를 새로 고치는 방법은 무엇입니까?

나는, 아이 패드 기본보기에 3 개 마르코 아이콘을 설정합니다.
popoverView의 아이콘은 실제로 삭제되지만 기본보기에는 여전히 3 개의 아이콘이 표시됩니다. 두 번째와 세 번째 그림과 같은
...
enter image description here

enter image description here

그것은 배경에서 삭제 한 다음 열려있는 응용 프로그램이 거 올바른 볼 수 있어야합니다 .. 네번째 그림 같은
..
용량 어떤 하나는 문제가 뭔지 알아 .. 난 [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 초 다시로드하려고 .. 나는 아무튼 이유를 잘 모릅니다 'T는 마르코보기를 새로 고치 ..

enter image description here

+0

Marco 스크롤보기의 디스플레이를 구동하는 코드를 게시 할 수 있습니까? – Tim

+0

Marco 스크롤 뷰에 대한 코드를 게시합니다. 고맙습니다. – miniHsieh

답변

0

디스플레이는 당신이 어딘가에있는 tableview를 사용하는 것처럼 표시합니다. 그렇다면 테이블보기에서 reloadData 메소드를 호출하고 있습니까?

관련 문제