2012-02-19 2 views
0

2 개의 레이어가있는 앱이 있습니다 (현재). bottomlayer에는 tableView가 있으며, tableView 선택에 따라 다른 버튼/레이블/기타를 표시하려면 최상위 레이어를 사용하고 싶습니다. DidSelectRowAtIndexPath를 기반으로 레이어를 숨기거나 표시하려면 본능적으로 선택을 기반으로 많은 레이어를 숨기거나 표시해야합니다. 또한 스토리 보드가 didSelectRowAtIndexPath를 기반으로 IUView를 표시하는 효과적인 방법은 무엇입니까?

가있는 tableview 선택에 따라 toplayer에있는 UIView를 변경하기위한보다 합리적인/효과적인 방법이 있나요 :(뿐만 아니라 매우 지저분한 얻을 것이라고 상상?

답변

0

루프를 모두 스루 - 인에 이 같은 루프의 종류 : 모두가 선택되어 인덱스와 제외 할 볼 수있는 자신의 태그를 설정하는 당신에 따라 달라집니다

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
     if (indexPath.row == 0) { 
      for (UIView *view in self.view.subviews) //change this to your container { 
       if (view.tag == 14) 
        continue; 

/*Do Nothing, this is the golden view that stays on screen. Maybe set it's frame or alpha, but don't hide it. 
*/ 
       else 
       [view setFrame:CGRectMake(0, self.view.bounds.size.height, 768, 1024)]; //set this to any value that puts the view offscreen or set alpha to 0 

      } 
     } 
    } 

비록

, 따라 원하는대로 변경에 대한, 또는 얼마나 많은. 변경해야하는 객체, th 방법이 실제로 더 성가시다 수 있습니다.

+0

아니요, 필수는 아닙니다. 여러보기를 사용하려는 경우 (가장 좋은 예는 아니지만 어쨌든!) 여러 태그를 제외합니다. 색인은 눌 렸던 셀을 결정하기위한 것입니다. ' – CodaFi

+0

하위보기 설정에 대한 권장 사항이 있습니까? 아직도 꽤 신선한 objC. 감사! – DrTchocky

+0

애니메이션이나 변경이 필요한 객체가 여러 개 있고 그 중 상당수가 자신의 UIView 내에 모두 포함되어 있다면 코드를 줄입니다. 또한 [UIView animateWithDuration : animations^{}]; 귀하의 앱을 전문적으로 보이게하고 그러한 불규칙한 프레임 변경을 제거하는 정말 쉬운 방법입니다. – CodaFi

관련 문제