0

TableViewCell과 함께 TableView를 사용하고 있습니다. 프로그래밍 방식으로 ImageView, Text 및 uibutton을 셀에 추가했습니다. 버튼의 프레임은 세로 및 가로 방향에 따라 다르게 설정됩니다. 그러나 장치를 세로에서 가로로 회전하면 하나가 아닌 두 개의 단추가 나타납니다.TableView에 표시된 2 개의 uibutton 장치 회전시 셀

가로 모드 버튼이 작동하지 않을 때 버튼을 제거하려고했습니다.

switch ([indexPath section]) 
{ 

    case 0: 
    { 
     cell.imageView.image = [UIImage imageNamed:@"active.png"]; 
     cell.textLabel.text = @"Application Name"; 
     self.uninstallApplicationButton = [[UIButton alloc] init]; 
     self.uninstallApplicationButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
     [self.uninstallApplicationButton setTitle:@"Install" forState: UIControlStateNormal]; 
     [self.uninstallApplicationButton setBackgroundColor:[UIColor brownColor]]; 

     UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation]; 

     if (device == UIUserInterfaceIdiomPhone) 
     { 
      if (UIInterfaceOrientationIsLandscape(orientation)) 
      { 
       self.uninstallApplicationButton.frame = CGRectMake(490.0, 25.0, 65.0, 30.0); 
      } 
      else if(UIInterfaceOrientationIsPortrait(orientation)) 
      { 
       self.uninstallApplicationButton.frame = CGRectMake(250.0, 25.0, 65.0, 30.0); 

      } 
     } 

     else if(device == UIUserInterfaceIdiomPad) 
     { 
      self.uninstallApplicationButton.frame = CGRectMake(600.0, 25.0, 150.0, 30.0); 
     } 

    } 
    [cell.contentView addSubview:uninstallApplicationButton]; 
     break; 
+1

관련 코드를 기입하십시오. – Caleb

+0

@Caleb 코드를 추가했습니다. – Amon

+1

이 코드를 어디에 작성 했습니까? 그것이 두 번 이상 실행될 수도 있습니다. – Desdenova

답변

0

init을 할당하기 전에 수퍼 뷰에서 버튼을 제거해야합니다.

+0

이 작동하지 않습니다. 단추를 제거하지만보기에 다시 추가하지는 않습니다. – Amon

+0

코드에서 다음 행을 제거하십시오. self.uninstallApplicationButton = [[UIButton alloc] init]; – KKRocks

+0

또한이 링크를 사용하여 tableview 셀에 버튼을 추가하는 프로세스를 참조하십시오. http://stackoverflow.com/questions/7721364/add-buttons-programatically-to-table-view-cells?answertab=votes#tab-top – KKRocks

1

코드가 -cellForRow(at:) 방법이라고합니다. 테이블 뷰는 셀을 다시 사용하기 때문에 코드는 구성중인 셀이 이미 이전에 구성되었을 수 있음을 고려해야합니다. 좋은 방법은이 방법으로 버튼이나 다른 뷰를 셀에 추가하지 않고 스토리 보드에 추가하는 것입니다. 셀에 뷰를 추가해야하는 경우 이전에 추가 한 뷰를 제거하거나 재사용해야 뷰를 다시 추가하지 않아도됩니다.