2010-03-10 4 views
50

에 하위 뷰를 추가 나는 인터페이스 작성 도구의 도움으로 UIImageView를 만들었습니다. 이제 그 안에 레이블을 배치하려고합니다 (하위 뷰로). 코드에서 다음과 같이 입력 할 수 있습니다 : [myUIImageView addSubview:myUILabel];하지만 IB의 도움으로 할 수 있습니까? UIView에 대한 해결책을 찾았지만 UIImageView과 비슷한 것을 찾을 수 없습니다.애플 인터페이스 빌더는 : UIImageView에

답변

105

당신은 애플에게 알려진 이유는 인터페이스 빌더에있는 UIImageView에 하위 뷰를 추가 할 수 없습니다! 프로그래밍 방식으로 하위 뷰를 추가 할 수 있다고 말하면서 그렇지만 자동 크기 조정 마스크 및 하위 뷰의 배치를 설정하는 오버 헤드가 모두 코드에서 처리되어야하므로 번거로울 수 있습니다.

쉬운 해결 방법이 있습니다. 펜촉에서 UIImageView의 인스턴스를 드래그하는 대신 UIView를 드래그하고 UIImageView에 UIView (관리자의 cmd + 4 옵션)에서 클래스를 변경하면됩니다. 기본 imageView 인스턴스와 새 UIImageView 하위 클래스 인스턴스의 코코아 콩에서 유일한 차이점은 다음과 같습니다. nib (cmd + 1 옵션)에서 새 imageView로 이미지를 설정할 수 없습니다. 따라서 적절한 viewController의 -viewDidLoad 메서드에서이 이미지를 UIImageView의 출력으로 설정합니다. 그렇게함으로써

, 당신은 훨씬 쉽게 인터페이스 빌더에서 "지금의 UIImageView"인스턴스에 하위 뷰를 추가 무료입니다.

희망이 도움이됩니다. . .

+0

덕분에 매우 흥미로운 아이디어 (조언)에 대한 많은. – kpower

+0

감사합니다! 나는 당신이 당신의 UIImageView를 통해 뭔가를 넣어 경우, 그것은의 더 이상 이유에 대해 다음과 같이 추측 실제보다 배경 이미지 이미지 (HTML 에서처럼 화면 판독기가 이해할 수있는 실제 이미지를 참조하는 태그가 있거나 다른 태그의 CSS 속성 배경 이미지를 설정할 수 있습니다.이 경우 이미지는 실제 스타일이 아닌 단지 스타일입니다. 함유량). 그러나 iOS의 경우 backgroundImage 속성이 없습니다 (backgroundColor를 사용한 해킹) ... 나는 이해하지 못합니다. 그리고 UIImageView에 직접 언급 한 코드에서 하위 뷰를 추가 할 수 있으므로 바보입니다. – krookedking

+7

그러면 UIView를 만들고, UIImageView를 모든 크기를 다루는 서브 뷰로 넣고 UIView에 하위 뷰를 추가하는 것이 좋습니다. – Sulthan

13

답변을 추가하고 싶습니다.

UIImageView에 하위보기를 추가 할 수 없지만 UIView을 투명 (선명한 색상) 배경으로 통합하면 동일한 효과를 얻을 수 있습니다.

는 그 다음 전에 반드시 UIImageview을 넣어.

따라서 UIView에는 서브 뷰가 있고 UIImageviewUIView의 배경입니다.

나는 그 사과의 의도 생각합니다.

enter image description here

배경으로 투명 색상 설정하는 것을 잊지 마세요

enter image description here

:

여기 enter image description here

이 결과 : 여기

는 스크린 샷입니다

이제 누군가 실제로 튜토리얼을 가르쳐 주면이 방법이 유용 할 것입니다. 확인 된 응답 방식으로 몇 시간을 보냈습니다. 확인 된 대답은 훌륭한 대답이지만 매우 직관적이지는 않습니다. 작업하는 동안 배경 이미지를 명확하게 볼 수 없기 때문입니다. 나는 내 방식이 그렇게하는 적절한 방법이라고 생각한다. 최신 엑스 코드에서

+2

정말 질문 : 나는 IB와 UIImageView의 직접 하위 뷰를 추가 할 수 있습니까? 그 대답은 '아니오'였습니다. 그것이 올바른 것으로 표시된 이유입니다. 제 말은, 당신의 "대체물"에 대해 알고 있었고 "어떤 식 으로든 이것을"하는 것이 아니라이 특별한 가능성에 관심이 있다는 것입니다. 하지만 당신은 아이디어가 훨씬 좋다, 그래서 upvote! – kpower

+2

아, 네 질문에 정확히 답하지는 않아. 그러나 그것은 그것이 있어야 할 길 인 것처럼 보인다. upvote 주셔서 감사합니다. –

+1

UIView는 다른보기를 포함해야합니다. UIImageView는 그림을 포함해야하는데 그게 전부입니다. 따라서 UIImageView 내부에서 하위 뷰를 원한다면 UIImageView 앞에 투명한 UIView를 만드는 것이 좋습니다. 당신은 이것을 확인 된 방법으로 할 수 있지만 사과가 이런 식으로되어 있어야한다고 확신합니다. –

-1

는 (4.5) 끌어 부모에게 필요한 컨트롤을 드롭하는 옵션이 있습니다.

매우 쉽습니다. 동일한 스크린 샷을 첨부했습니다.

UIImage *image = [UIImage imageNamed:@"background.png"]; 
UIImageView *imageView = [[UIImageView alloc] initWithImage:image]; 
[self.view insertSubview:imageView atIndex:0]; 

atIndex을 ((이미지background.png 교체) 교체 : 0있는 .index에서 어떤 장소 나는 enter image description here

+0

++ 10 Nirav - Wow - DUH, OF DUR! ... 당신의 간단한 기술로 Excedrin Extra Strength 한 병을 구해 줬습니다! –

+7

나는 그것을 얻지 않는다. Xcode 4.6.2는 캔버스에서든 아웃 라인에서든 UIImageView로 끌 수 없습니다. 개요에서, 나는 'UIImageView'와 아래의'UILabel'에서 시작합니다. 레이블을 왼쪽 버튼으로 클릭하고 위로 끕니다. Xcode는 내가 풀어줄 때'UILabel'이 나올 줄을 보여줍니다. 분명히, 그 라인은 들여 쓰기가되지 않습니다 : 그것은 루트 레벨에 있습니다. 제가 풀어줄 때,'UILabel'은'UIImageView'로 장소를 바꿀 수 있습니다 만, 안쪽에 * 들어가서는 안됩니다. 나는 성공하지 않고 몇 가지 수정 자 (shift, option)를 시도했다. 내가 놓친 게 무엇입니까? –

+3

'Interface Builder '에서'UIImageView' 안에'UIView'를 드래그 할 수 없습니다.'Xcode 8'에도 없습니다. –

-4

사용이 코드를있는 UIImageView하는 레이블/텍스트 필드와 버튼을 드래그 루트 당신은 이미지와 오프를 삽입 할.

관련 문제