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