2013-10-12 2 views
0

UIView (크기 조정, 이동 등)를 제어 할 수있는 .m 및 .h 파일이 있습니다. UIView 클래스의 메서드 액세스

내가 여기에 게시 : RemoveFromSuperview specific views 내 수퍼에서 모든 하위 뷰를 제거하는 방법을 물어.

나는 루프로 아이디어를 얻었으며 훌륭하게 작동합니다.

지금은 내있는 UIView에서하는 방법으로 접근하고 싶습니다.

[myStickerView hideTools]; 

이 메서드는 myStickerView에서 일부 버튼을 숨 깁니다.

나는 hideTools 메소드를 호출하는이 코드를 사용하지만, 작동하지 않습니다.

for (UIView *view in self.view.subviews) { 
    if ([view isKindOfClass:[myStickerView class]) { 
     [myStickerView hideTools]; 
    } 
} 

무엇이 문제입니까? 도와주세요, 제발. 모든 myStickerView에 대해 hideTools으로 전화 하시려면 self.view.subviews입니다.

감사합니다.

+0

에 선언하는 나의 제안

for (myStickerView *stickerView in self.view.subviews) { if ([stickerView isKindOfClass:[myStickerView class]) { [stickerView hideTools]; } 

또는 힘의 대상 파단이다. 수업의 이름은 무엇입니까? – LuisCien

답변

2

나는 당신의 hideTools 방법이 myStickerView 클래스에서만 사용할 수 있음을 가정하고있다.

for (UIView *view in self.view.subviews) { 
    if ([view isKindOfClass:[myStickerView class]) { 
     [(myStickerView *)view hideTools]; 
    } 
} 

편집 : :이 경우

해당 클래스의 hideTools 전화 싶어 내가 다른 사람과 동시에 대답 :(하지만 myStickerView에보기를 캐스팅하지 않는 경우, 당신이 ' 경고를 얻을 거라고.

+1

+1의 올바른 캐스트에 대한 +1 – Joel

+0

그게 적절한 캐스트라고 생각하지 않습니다 ... myStickerView는 인스턴스입니다 – LuisCien

+0

@LuisCien 사실이지만 그 클래스의 이름을 아직 모릅니다. 우리가 수업의 이름을 배운다면 대답을 업데이트 할 것입니다. –

0
for (UIView *view in self.view.subviews) { 
if ([view isKindOfClass:[myStickerView class]) { 
    [view hideTools]; 
} 
+0

hideTools를 호출하려면 뷰를 myStickerView로 변환해야합니다. – Joel

0

첫째, 루프를 위해.

그리고 파단의 view이 당신의 이러한 객체 호출 myStickerView이 없습니다 UIView 클래스로 선언되었습니다.

다음은 클래스 내 대답을 향상시키고 자하는

for (UIView *view in self.view.subviews) { 
     if ([view isKindOfClass:[myStickerView class]) { 
      [(myStickerView *)view hideTools]; 
     } 
관련 문제