2016-10-02 4 views
0

멀티 페어 연결 프레임 워크를 사용하는 앱을 작성 중입니다. 내 장치 중 하나는 UIView 항목 목록을 준비하고 다른 장치로 보낼 것입니다. 다른 장치가 목록을 수신하면보기 및 표시 장치에 배치합니다.스위프트 : 멀티 페어 연결을 사용하여 UIView 업데이트

그러나이 장치는 목록을 수신 할 수 있으며 목록 안의 각 항목의 프레임을 인쇄 할 수 있습니다. 그러나 for 루프를 사용하여 화면에 표시하지만 뷰는 업데이트되지 않습니다. 내가 놓친 것에 대한 어떤 생각?

func placeViews() { 
    for (string, item) in self.imageViewItemViews { 
     debugPrint(string, item.frame) // print out what it received correctly 
     self.containerView.addSubview(item) 
    } 
    } 

응용 프로그램이 시작될 때 containerView가 이미 표시됩니다. 또한 self.containerView.setNeedsDisplay()를 호출했습니다.

+0

응용 프로그램이 디버그 뷰 계층 구조 (3D보기)를 사용하여 실행 중일 때 모든 하위 뷰를 확인할 수 있습니다. 내 답변에 이미지를 첨부했습니다. –

답변

1

하위 뷰가 뷰의 계층 구조로 돌아갈 수 있습니다. 아래의 그림처럼 디버그 뷰 계층 (3D보기)으로 이것을 확인할 수도 있습니다. 보기 다시이 코드를 사용할 수있는 기본보기의 경우

Debug view hierarchy

, 심지어는 수퍼 모르는 :

[subview.superview bringSubviewToFront: subview]; 
: 목표 - C에서

신속히 :

subview.superview.bringSubviewToFront(subview) 

희망이 도움이 될 것입니다.

+0

그래도 여전히 내 문제를 해결할 수 없지만 그러한 디버그 모드가 있음을 알려 주면 앞으로 사용할 수 있습니다. 감사. – user6539552

+0

@ user6539552 잘하면 문제를 해결할 수 있으며 내 대답은 향후 디버깅에 도움이 될 것입니다. –

0

마침내 내 코드가 주 스레드에서 실행되지 않아 UI가 업데이트되지 않기 때문에 발견되었습니다.

관련 문제