2014-09-08 2 views
0

viewWill에서 URL 요청이 생성되고 데이터가 SQLite에 저장되면 함수가 호출되어 목록을 생성합니다. 동일한 함수가 초기로드시에 목록 위의 버튼/탭처럼 호출되지만 초기로드는 스크롤되지 않고 버튼을 클릭하는 동안 generateList를 호출하면 스크롤이 작동합니다.iOS ScrollView는 초기로드를 스크롤하지 않습니다.

-(void)viewWillAppear:(BOOL)animated{ 
    [super viewWillAppear:animated]; 
    NSString *url = [NSString stringWithFormat: @"%@%@", @"www.URL.com/", @"extension"; 
    NSLog(@"Log: %@", url); 
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString: url] cachePolicy: NSURLRequestUseProtocolCachePolicy timeoutInterval:15.0]; 
    NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; 
    if(connection){ 
     //connected 
    }else{ 
     //failed 
    } 
} 
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{ 
    //response defined in synthesize 
    response = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 
} 
- (void)connectionDidFinishLoading:(NSURLConnection *)connection{ 
    NSString *extension = [NSString stringWithFormat:@"%@", connection.currentRequest]; 
    if(extension == @"list"){ 
     ...load into sqlite after deleting old data... 
     [self generateList:0] 
    } 
} 
- (IBAction)TabOne:(id)sender { 
    ...style buttons... 
    [self generateList:1]; 
} 

-(void)generateList:(int)tabNum{ 
    // --- Problem Area --- 
    // To Top of List 
    [self.ListScroll setContentOffset:CGPointZero animated:NO]; 
    // Remove any List subviews 
    [[self.List subviews] makeObjectsPerformSelector:@selector(removeFromSuperview)]; 
    ...query sqlite and load content into UIView inside UIScrollView which the NSLog shows is working... 
    // Resize List 
    self.List.frame = CGRectMake(self.List.frame.origin.x, self.List.frame.origin.y, self.List.frame.size.width, (rowCount) *51); 
    self.ListScroll.contentSize = CGSizeMake(self.List.frame.size.width, self.List.frame.size.height); 
    NSLog(@"height: %f", self.List.frame.size.height);// Returns Correct 
    NSLog(@"height: %f", self.ListScroll.contentSize.height);// Returns Correct 
} 

사이드 참고 : 그 초기 경계의 외측 이동 버튼과 상호 작용하는 기능을하지 못하기 때문에 스토리 보드에서 I는 9999로 설정되어있는 UIScrollView 높이 내부에 UIView 있습니다.

이 문제를 해결하고이 코드를 개선하기위한 모든 도움과 비판에 진심으로 감사드립니다. 당신은 모두 최고입니다!

답변

0

내가 찾을 수있는 유일한 해결책은 Storyboards를 사용하는 대신 프로그래밍 방식으로 UIScrollView 및 내부 UIView를 만드는 것이 었습니다. 누군가 스토리 보드 사용에 대한 해결책을 가지고 있다면 다른 사람들이 스토리 보드를 사용하는 것에 대한 해결책이 될 것입니다.

관련 문제