2010-05-26 4 views
4

나는 100px 아래로 표시하고 싶은 UITableView가 있습니다. 어떤 이유로 animated가 YES로 설정된 경우에만 작동합니다. 왜 이런거야?setContentOffset 애니메이션이 YES로 설정된 경우에만 작동합니다.

- (void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 
    /*[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:1 inSection:0] 
          atScrollPosition:UITableViewScrollPositionNone 
            animated:NO];*/ 

    /*[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathWithIndex:1] 
             atScrollPosition:UITableViewScrollPositionNone 
             animated:NO];*/ 

    [self.tableView setContentOffset:CGPointMake(0,100) animated:YES]; 
} 

답변

0

setContentOffset 대신 setFrame을 사용하려고하면 어떻게됩니까?

당신은 당신의 viewDidAppear 방법이 코드를 추가해야합니다


[self.tableView setFrame:CGRectMake(0, 100, 320, 380)]; 

을보기에 당신이 가지고있는 다른 요소에 따라 (예를 들어 네비게이션 컨트롤러는, 도구 모음 등) 당신이 뭔가에 380을 조정해야합니다 그밖에.

+0

높이를 동적으로 만드는 방법이 있습니까? –

0

XCode가 제공하는 기본 네비게이션 기반 응용 프로그램을 사용하여 일부 표 셀에 제공 한대로 잘 동작합니다. viewWillAppear가 아닌 viewDidAppear 내에서 내용 오프셋을 설정해 보았습니까?

+0

viewDidAppear의 행운 중 하나. –

+0

이보기는 어떻게 표시됩니까? 이 뷰는로드 된 그대로 바로 표시됩니까? 안으로 살아 움직이는거야? 또한 다른보기 내의보기입니까? 등등 –

+0

그것은 안으로 움직이고 있습니다. 이것은 다른보기 내의보기가 아닙니다. –

0

톱 당신은 here.

는 내가 거기에 대답하지만, 조금 다른 선사 시대와, 비슷한 질문을 제기했다. 누군가에게 유용 할 수 있습니다.

-1
는 "setContentOffset"을 "의 viewDidLoad"를 이동하고 그 전에 "reloadData"를 추가

:

스위프트에서

:

func viewDidLoad() { 
    super.viewDidLoad() 
    tableView.reloadData() // important for scrolling to be possible 
    tableView.setContentOffset(newContentOffset), animated: false) 
    } 
관련 문제