2012-08-30 4 views
0

UIBarButtonItem 프레임 너비가 0 인 어려운 방법을 찾았습니다. 인터넷 검색이 끝나면 왼쪽 막대 버튼의 너비를 찾기 위해 nav 컨트롤러 서브 뷰를 가로 지르는 방법을 찾았습니다. 그것은 작동하지만 더 깨끗한 방법이 있어야만하는 것처럼 보입니다.계산 왼쪽 UIBarButtonItem 너비

이 방법을 사용하여 내 앱이 거부 될 이유는 없습니다.

UIView *leftBarButtonView = nil; 
    for (UIView* v in self.navigationController.navigationBar.subviews) { 
     if ([[v class].description isEqualToString:@"UINavigationButton"]) { 
      if (leftBarButtonView==nil) { 
       if (v.frame.origin.x > 0.0) 
        leftBarButtonView = v; 
      } else if (v.frame.origin.x < leftBarButtonView.frame.origin.x && v.frame.origin.x>0.0) { 
       leftBarButtonView = v; // this view is further right 
      } 
     } 
    } 

답변

1

는 아니, 그것은 아마 거부되지 않습니다 - 아마, 애플을 제외하고 아무도로 확실히 그것을 말할 수 있습니다. 그러나 한 가지는 확실하다 :

[[v class].description isEqualToString:@"UINavigationButton"] 

이 작동하지 않습니다.

[v isKindOfClass:objc_getClass("UINavigationButton")] 

을 대신 사용하십시오.

+1

감사합니다. 첫 번째 경우는 테스트 한 코드로 작동하지만 두 번째 버전은 더 깨끗하게 보입니다. – MobileGuy

+0

@MobileGuy 그것이 올바른 방법이기 때문에 :) –