2010-06-21 4 views
0

필자는 uitableview 및 몇 개의 버튼이 포함 된 scrollview 있습니다. IB에서 uitableview를 추가했습니다. 테이블 셀은 동적으로 작성됩니다. 나는 각 테이블 셀 (사용자를위한 입력 폼과 같은 것)을위한 lable과 텍스트 필드를 추가하려고한다. 키보드가 나타날 때 스크롤 뷰의 크기를 재조정하는 코드를 작성했다. 그래서 텍스트 필드를 클릭하면 키보드가 나타나 화면 절반을 차지하고 scrollview는 나머지 절반을 차지합니다. 이 문제가 발생하면 바로 테이블 뷰가 변경되어 테이블의 첫 번째 셀만 표시됩니다. 테이블 뷰가 잘린 것처럼 보입니다. 내가 뭘하든 관계없이, tableview는 전체 테이블을 표시하지 않습니다 ... 그래서 와트는 내가 잘못하고 있습니다.uiscrollview 및 uitableview

Heres my code.

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    scrollView.contentSize=self.view.frame.size; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

    static NSString *CellIdentifier = @"Cell"; 
    UITableViewCell *cell= [[tableView dequeueReusableCellWithIdentifier:CellIdentifier] autorelease]; 
    if (cell==nil) { 

     CGFloat fontSize = [UIFont labelFontSize]-3 ; 
     CGFloat topMargin = floor(0.5 * (tableView.rowHeight - fontSize)) -2; 

     cell = [[[UITableViewCell alloc] 
      initWithFrame:CGRectMake(0, 0, 320, tableView.rowHeight) 
      reuseIdentifier:CellIdentifier] 
      autorelease]; 


    UILabel *labelHeading = [[[UILabel alloc]initWithFrame:CGRectMake(10.0, topMargin, 100.0, fontSize + 4)] autorelease]; 
    labelHeading.text= [[self.menuItems objectAtIndex:indexPath.row] objectForKey:@"itemName"]; 
    [cell addSubview:labelHeading]; 
    txtValue = [[[UITextField alloc] initWithFrame:CGRectMake(120,topMargin,150 ,fontSize + 4)] autorelease]; 
    txtValue.text=[NSString stringWithFormat:@" %@",[dataItems objectForKey:@"name"]]; 
    [cell addSubview:txtValue]; 
    [scrollView addSubview:cell]; 
    } 
return cell; 
} 

누군가 나를 도울 수 있습니다. 너 아이디어 받았어?

+0

다른 문제가 있습니다. 키보드가 나타나면 전체보기가 조금씩 바뀌는 것 같습니다. 이것이 무엇을위한 이유가 될 수 있습니다. – Jayshree

답변

0

솔루션에서 어떤 일이 벌어지고 있는지 정확히 모르겠지만 IB에서 UITableView를 선택하고 "크기"속성 탭 (눈금자)에서 적절한 크기 조정 옵션 (예 : 거리 테두리, 높이, 너비 규칙)

+0

크기 속성을 확인했습니다. 다 좋아. 문제는 키보드가 뷰에 나타나면 테이블의 크기가 테이블 셀의 크기로 줄어 듭니다. 첫 번째 셀만 표시됩니다. TextFieldDidEndEditing : textfieldDelegate 메서드에서 tableview 프레임의 크기를 조정하여 해결했습니다. 나는 이것이 잘못된 접근법이라는 것을 알고 있지만 다른 어떤 방법도 보지 못한다. – Jayshree