인터페이스 빌더에 추가 된 UIView의 서브 뷰에 프로그래밍 방식으로 액세스합니다

StackOverflow https://stackoverflow.com/questions/667807

  •  21-08-2019
  •  | 
  •  

문제

배경 이미지, 버튼 및 전면으로 이동 해야하는 전체 화면 (그림자)을 포함하는 다른 이미지가 포함 된 뷰가있는 펜촉 파일이 있습니다. 관점에서, 나는 어린이보기를 만들고 그것을 만들어 사용한 후 [self addView] 그림자 이미지의 전면으로 이동해야합니다.

나는 현재 태그 속성을 사용하여 해당보기를 찾고 있지만, 인터페이스 빌더를 일부 이름으로 추가하는 서브 뷰를 식별하여 더 나은 방법이있을 것이라고 생각합니다.

하위 뷰를 부모와 연결하기 위해 iBoutlet을 추가하려고하지만, 하위 뷰가 이미 어떤 방식 으로든 부모와 연결되어 있기 때문에 효과가 없었습니다).

도움이 되었습니까?

해결책

그만큼 IBOutlets 길은 작동해야하며 아마도 가장 좋은 방법 일 것입니다. .h 파일로 선언 한 후 인터페이스 빌더에 올바른 연결을했는지 확인하십시오.

다른 팁

iPhone은 뷰 컨트롤러의 게으른로드를 수행합니다. Kendall이 지정된대로 INITWithCoder 또는 그 문제에 대한 INT 방법에 NIB가로드되지 않았을 수 있습니다.

ViewDidload는보기가 표시되기 전에 액세스하려면 펜촉에서 모든 것에 액세스 할 수있는 선호하는 장소입니다.

도움이되기를 바랍니다.

어떤 시점에서 하위 뷰에 액세스하려고합니까? ViewController의 Init 내에서 시도하면 iBoutlets가 NIL이됩니다. 당신이 그들에게 얻을 수있는 첫 번째 방법은 아마도 ViewDidload 일 것입니다.

이런 식으로 일을하는 것이 합리적 인 이유는 Iboutlet이 이미 다른 것의 하위 뷰 일지라도 일부 구성 요소에 대한 직접 포인터이기 때문입니다. 많은 사냥을 저장합니다.

태그를 사용하는 것은 ViewWithTag : Method를 사용하는 한 특정 뷰를 찾는 완벽하게 유효한 방법입니다. 이미 태그를 사용하고 있다면 ViewWithTag를 호출하는 것을 좋아하지 않는 한 iBoutlet을 변경할 필요가 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top