문제

현재 iPhone 앱에는 코드로 채워진 상위 목록 보기가 있습니다.저는 Interface Builder를 사용하여 뷰를 구성했습니다. UILabel에스.

분명 난 갖고 싶지 않을 거야 name1, name2, 등.내 수업에는 콘센트가 있지만 name[10] 정렬.

그렇게 할 수 있고 각 항목을 적절한 레이블(또는 보기와 같은 다른 인터페이스 빌더)에 연결할 수 있습니까?

도움이 되었습니까?

해결책

IB에서는 할 수 없지만 IB에서 배열을 만들 수 있습니다. init 방법을 선택하고 여기에 모든 라벨을 추가하세요.

그런데 각 레이블에 일부 태그를 설정하고 매크로를 정의하여 액세스할 수 있습니다.아주 좋아

#define NAME[TAG] (UILabel*)[self.view viewWithTag:TAG]

다른 팁

물론 인터페이스 빌더를 사용하여 이 작업을 수행할 수 있습니다. 키워드는 다음과 같습니다. IBOutletCollection.그것이 하는 일은 기본적으로 여러 인터페이스 빌더 아웃렛에서 나온 NSArray입니다.

IBOutletCollection(UILabel) NSArray *myLabels;

따라서 다음 작업은 인터페이스 빌더에서 레이블을 연결하는 것입니다. 그런 다음 배열을 사용하여 런타임에 모든 레이블에 액세스할 수 있습니다.

이는 콘센트 컬렉션을 사용하여 수행할 수 있습니다. 이 관련 질문.

IB 요소와 연결하는 콘센트 배열을 생성하려면 다음 단계를 따르십시오. UIView, 당신이 사용할 수있는 UILabel 또한):

  • IBOutlet 배열 생성
  • Storyboard ViewController 인터페이스에 여러 UIElement(뷰) 추가
  • ViewController(스토리보드에서)를 선택하고 연결 검사기를 엽니다.
  • 연결 검사기에는 'Outlet Collections' 옵션이 있습니다(거기서 일련의 콘센트가 표시됩니다).
  • 인터페이스 요소가 있는 경우 연결

-

class ViewController2: UIViewController {


    @IBOutlet var collection:[UIView]!


    override func viewDidLoad() {
        super.viewDidLoad()
    }
}

enter image description here

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