2013-01-17 1 views
4
PO(NSStringFromSelector(self.editSettings.action)); 
[self.editSettings setCustomView:imageView]; //works if this is commented out but with bad image 
PO(NSStringFromSelector(self.editSettings.action)); 

그 코드를 변경 한 후에는UIBarButtonItem가 더 이상 응답하는있는 CustomView

2013-01-17 11:47:41.184 BadgerNew[29570:c07] NSStringFromSelector(self.editSettings.action): Setting: 
2013-01-17 11:47:41.185 BadgerNew[29570:c07] NSStringFromSelector(self.editSettings.action): Setting: 

그래서 선택기는 여전히 동일 생산하지 않습니다.

그러나 [self.editSettings setCustomView : imageView]; 더 이상 버튼을 누를 수 없습니다. 그것을 누르면 아무런 효과가 없습니다.

아마도 customView가 사용자 상호 작용을 흡수한다고 생각했습니다.

그러나 imageView.userInteractionEnabled을 설정할 수 없습니다. 그런 선택자가 없습니다.

무엇이 누락 되었습니까?

그건 문제가되지 않습니다. 나는 더 많은 콘솔 프린트를 추가했다.

UIImage * imageSetting= [UIImage imageNamed:@"setting-button"]; 
UIImageView * imageView = [[UIImageView alloc]initWithImage:imageSetting]; 
self.editSettings = [[UIBarButtonItem alloc]initWithCustomView:imageView]; 
self.editSettings.action = @selector(Setting:); 

self.navigationItem.leftBarButtonItem = self.editSettings; 

여전히 작동하지 않습니다 : 그것은 이미지 뷰 userInteractionEnabled 기본적

UIImage * imageSetting= [UIImage imageNamed:@"setting-button"]; 
UIImageView * imageView = [[UIImageView alloc]initWithImage:imageSetting]; 
PO(NSStringFromSelector(self.editSettings.action));//Bar Button Item 
self.editSettings.customView =imageView; 
PO(NSStringFromSelector(self.editSettings.action)); 
PO(@(imageView.userInteractionEnabled)); 
PO(self.editSettings.customView); 
PO(imageView); 
imageView.userInteractionEnabled=false; 

거짓이었다 그때 인터페이스 빌더 (IB) 솔루션없이 완벽하게 시도 할 수 있음을 보여줍니다.

customView가 이미지 대신 버튼이어야한다고 말하는 사람이 있습니다. 글쎄, 궁금해. 다큐먼트에서

+0

editSettings 란 무엇입니까? 어떤 종류의 컨트롤인가? – viral

+0

또한'imageView'는 UIView의 자손입니까? 그렇다면, ** 반드시 ** userInteractionEnabled' 속성을 가지고 있습니다. –

+0

imageView는 UIImageView입니다. –

답변

3

:

initWithCustomView :

initWithCustomView :

지정된 사용자 정의보기를 사용하여 새 항목을 초기화합니다. - (ID) initWithCustomView : 지정된 속성 (UIView의 *)있는 CustomView 매개 변수

있는 CustomView

A custom view representing the item. 

반환 값

새로 초기화 아이템입니다. 토론

이 메서드로 만든 막대 단추 항목은 사용자 상호 작용에 대한 응답으로 대상의 메서드를 호출하지 않습니다. 대신, 바 버튼 항목은 지정된 사용자 정의보기가 모든 사용자 상호 작용을 처리하고 적절한 응답을 제공 할 것으로 기대합니다. 예약 가능 여부