iOS 플레이 그라운드에 UI 미리보기가 표시되지 않음
XCode 7.1로 간단한 플레이 그라운드를 만들고 다음과 같은 간단한 코드를 입력했습니다.
import UIKit
import XCPlayground
var str = "Hello, playground"
let color = UIColor (red: 1 , green: 1 , blue: 0 , alpha: 0 )
let view = UIView()
view.backgroundColor = UIColo (colorLiteralRed: 1 , green: 0 , blue: 0 , alpha: 0 )
view.frame = CGRect (x: 0 ,y: 0 ,width: 100 ,height: 100 )
let label = UILabel (frame: CGRect (x: 5 , y: 5 , width: 50 , height: 20 ))
label.text = str
view.addSubview(label)
플레이 그라운드가 실행되면 UIKit 객체 미리보기가 표시되지 않고 디버그 정보 만 표시됩니다.
내가 도대체 뭘 잘못하고있는 겁니까?
미리보기 패널을 엽니 다. 보기> 보조 편집기> 보조 편집기 표시
그런 다음 코드에서 :
import PlaygroundSupport
PlaygroundPage.current.liveView = view
뷰에 가시적 인 프레임을 제공하는 것을 잊지 마십시오.
추신 : Xcode 9 이후 기본보기로 플레이 그라운드를 만들 수 있습니다.
허용되는 대답은 인라인 코드가 아닌 스크린 샷이며,이 Xcode 8 이전을 수행하는 방법을 보여 주므로 좋은 대답이라고 생각하지 않습니다.
다음은 Xcode 8에 대한 업데이트 된 답변입니다.
몇 가지 단계가 있습니다.
PlaygroundSupport를 가져와야합니다.
import PlaygroundSupport
PlaygroundPage.current.needsIndefiniteExecution을 true로 설정해야합니다.
PlaygroundPage.current.needsIndefiniteExecution = true
표시하려는 뷰 계층을 liveView에 추가해야합니다.
PlaygroundPage.current.liveView = container
전체 놀이터는 다음과 같습니다.
import UIKit
import PlaygroundSupport
let container = UIView(frame: CGRect(x: 0, y: 0, width: 200, height: 200))
let view = UIView(frame: CGRect(x: 0, y: 0, width: 50, height: 50))
view.backgroundColor = UIColor.red
container.addSubview(view)
PlaygroundPage.current.liveView = container
PlaygroundPage.current.needsIndefiniteExecution = true
마지막으로 방금 만든 라이브 뷰를 확인해야합니다. 내 Xcode 8 (릴리스 버전)에서보기 메뉴> 보조 편집기> 보조 편집기 표시 Xcode를 선택하려고하면 매번 충돌합니다.
컨테이너 뷰를 생성하는 줄에서 코드 오른쪽에있는 상자의 화면 오른쪽에 마우스를 가져 가야합니다. 작은 눈 아이콘이 보이며 클릭하면 충돌없이 라이브 뷰가 표시됩니다.
보조 편집자가 아무것도하지 않는 문제를 경험하신 분들을 위해 (저에게는 단순히 공백이었습니다) 문제를 해결 한 방법은 다음과 같습니다.
해당 코드를 사용하여 테스트하십시오. https://stackoverflow.com/a/33543820/4572536 (위에서 허용 된 답변)
View -> Assistent Editor -> Assistent Editors on Bottom
(또는 기타 옵션)
후자는 Xcode를 트리거하여 뷰를 다시 그립니다.
참고 : 전체 시스템을 다시 시작한 후에도 Xcode가 뷰를 그리지 않았기 때문에 가능한 해결 방법으로 이것을 공유하고 있습니다. 이 문제를 재현하는 방법을 모르겠지만 문제가 발생하면이 해결 방법을 시도해 볼 수 있습니다.
구문 외에도 라이브 뷰를 다시 내 경우에 표시하는 다른 트릭을 찾았습니다 (Xcode 8.2.1 Swift 3.0). 또한 이것은 Xcode의 사소한 버그 일 수 있습니다. 어시스턴트 에디터 상단의 + 버튼을 클릭하세요. 어시스턴트 편집자가 파일의 인터페이스 파일을 표시하고 라이브 페이지 자동 표시를 거부하기 때문입니다.
플레이 그라운드 설정에서 타임 라인 표시를 선택하면됩니다.
이전 답변에 필요한 컨테이너 뷰가 필요한 이유를 알 수 없습니다. 이것은 잘 작동합니다.
import UIKit
import XCPlayground
import PlaygroundSupport
var str = "Hello, playground"
let color = UIColor (red: 1 , green: 1 , blue: 0 , alpha: 0 )
let view = UIView(frame: CGRect(x: 0, y: 0, width: 200, height: 200))
view.backgroundColor = UIColor.red
view.frame = CGRect (x: 0 ,y: 0 ,width: 200 ,height: 200 )
PlaygroundPage.current.needsIndefiniteExecution = true
PlaygroundPage.current.liveView = view
let label = UILabel (frame: CGRect (x: 5 , y: 5 , width: 200 , height: 20 ))
label.text = str
view.addSubview(label)
단일 뷰에 대한 Xcode 플레이 그라운드를 만들고 처음으로 실행 한 후 오른쪽 상단 모서리에있는 어시스턴트 편집기를 활성화하여 라이브 뷰를 활성화하는 것을 잊지 마십시오.
Xcode 8.3에서는 여전히 문제가 있습니다. 작동하는 유일한 방법은 Xcode를 종료하고 다시 시작하는 것입니다. 시뮬레이터가 실행되고 있다는 것을 알았 기 때문에 시뮬레이터를 종료하려고했지만 문제가 해결되지 않았습니다. 레이더를 제출합니다.
import UIKit
import PlaygroundSupport
let frame = CGRect(x: 0, y: 0, width: 300, height: 700)
let container = UIView(frame: frame)
container.backgroundColor = .red
let inner = UIView(frame: CGRect(x: 100, y: 100, width: 20, height: 40))
inner.backgroundColor = .blue
container.addSubview(inner)
PlaygroundPage.current.liveView = container
PlaygroundPage.current.needsIndefiniteExecution = true
참조 URL : https://stackoverflow.com/questions/33543460/ios-playground-doesnt-show-ui-preview
'IT TIP' 카테고리의 다른 글
C #에서 쿼리 문자열을 사전으로 변환하는 가장 좋은 방법 (0) | 2020.12.28 |
---|---|
목록의 이동 평균 계산 (0) | 2020.12.28 |
얼마나 자주 리팩토링해야합니까? (0) | 2020.12.27 |
인스트루먼트 할당은 사용자 정의 클래스의 객체 할당 및 할당 해제를 추적합니다. (0) | 2020.12.27 |
Django에서 "미디어"파일에 액세스 (0) | 2020.12.27 |