2012-02-05 4 views
0

사용자 정의 UITableViewCell을 사용하고 있습니다. 사용자 정의 UITableViewCell을 사용하고 있습니다. beginUpdates/endUpdates를 사용하여이를 수행하고, 이는 다시 heightForRowAtIndexPath를 호출합니다. 그것은 잘 작동 세포가 확장, 내가 가진 라벨이 표시됩니다. 지금까지 좋은 모든 것.사용자 정의 동적 확장을 위해 UITableView의 크기를 조절하는 방법 UITableViewCell

유일한 문제는 UITableView 자체가 셀의 높이를 고려하여 크기가 조정되지 않는다는 것입니다.

프레임 크기 조정에 대해 읽었지만 작동하지 않는 것 같습니다. 아무도 내가 어떻게 할 수 있는지 알지 못한다. 왜냐하면 아주 단순해야한다고 생각하기 때문이다.

답변

1

을 조정해야하므로, 내가 믿는 당신이 테이블 뷰의 크기를 크기를 조정해서는 안 말할 것 최근에 같은 문제가 발생했습니다. 나는 YouTube에서 macheads 101 튜토리얼에서 대답을 찾았습니다. 그의 예는 UITableView를 처리하여 키보드 디스플레이를 설명하기 위해 크기를 조정했습니다.

[[NSNotificationCenter defaultCenter] addObserver:self selector: 
    @selector(keyBoardHidden:) name:UIKeyboardWillHideNotification object:nil]; 

가있는 viewDidLoad 방법이고 그것과 같다 keyBoardHidden 호출 : 그 간단한 명령 프레임을 조정할
- (void)keyBoardHidden:(NSNotification *)note { 
    //[[self tableView:tableView cellForRowAtIndexPath:0].textLabel setText:@""]; 
    //[tableView setFrame:self.view.bounds]; 
    CGRect searchBarFrame = searchBar.frame; 
    CGRect newTableViewFrame = CGRectMake (0, (float)searchBarFrame.size.height, 
     320, 480); 
    [tableView setFrame:newTableViewFrame];  
} 

[있는 tableView setFrame : self.view.bounds]; 하지만 그것은 검색 창에 숨겨진 맨 위의 셀을 남겨 둡니다. 처음에는 첫 번째 셀을 비우는 것으로 해결했지만 원래는 부시 리그 였고 검색 막대의 맨 아래에서 시작하도록 UITableView 프레임을 말했습니다. 나는 그것이 당신에게 유용 할 경우를 대비해 다른 해결책을 코멘트에 남겨 두었습니다.

불행히도 이것은 단지 예일뿐입니다. 나는 코드에서 이러한 기술을 구현할 위치를 알려줄만큼 충분히 지식이 없다. 어쨌든 이것이 유용 할 수 있기를 바랍니다.

+0

대단한 것. 감사 샘. 그것을 고쳐주지는 못했지만, 확실히 나에게 가까이 다가갔습니다! 마지막 해결책을 찾으면 다시 올게. 다시 한번 감사드립니다. – Will

+0

멋진데, 내가 너를 도울 수있어 기쁘다. 흥미롭게도, 나는 같은 생각의 더 복잡한 버전을 만들고 있는데, 나는 그 문제에 대해서도 달려있다. 다른 모든 것은 작동하지만 테이블보기는 더 이상 제대로 조정되지 않습니다. 이전에 작동했던 동일한 코드가 실패했습니다. 나는 또한 그것을 찾고 있으며, 우리 중 한 명이 해결을 위해 사용할 수있는 해결책을 찾을 수 있는지 보는 것은 흥미로울 것입니다. [link] (http://stackoverflow.com/q/9610454/1227207) 이것은 본질적으로 같은 문제에 대해 물어 본 질문에 대한 링크입니다. 단지 두 줄의 물을 가질 수 있습니다. –

0

나는이 시도 적이 있지만, 그 스크롤 뷰는 내가 제대로 문제를 이해한다면 당신은 contentSize 속성

+0

아니, 그는 프레임을 변경해야합니다. heightForRowAtIndexPath 덕분에 tableview 자체가 contentSize를 처리합니다. 코드가 보이지 않으면 왜 작동하지 않는지 말하기 어렵습니다. – jsd

+0

죄송합니다. 그가 읽어야 할 것으로 생각하지 않는 tableview 프레임의 크기를 조정하려고 할 때 읽었습니다. – wattson12

+0

좋아, 코드 블록을 주석에 넣는 방법을 찾지 못했습니다. 죄송합니다. 내'heightForRowAtIndexPath' 메소드는 행이 선택된 행인 경우 44 또는 200을 반환합니다. 이것은'accessoryButtonTappedForRowWithIndexPath'에서 변수를 사용하여 설정됩니다. 그것은 나에게 꽤 간단하게 보인다. .. 그래서 나는 내가 올바르게 이해하지 못한다고 생각한다. – Will

관련 문제