【초보자용】Swift3로 폭속 코딩 그 2(UIView와 문자 표시)
3994 단어 iOSSwift3.0Xcode8Swiftplayground
첫 분은 아래를 참고하십시오.
마지막: 【초보자용】Swift3로 폭속 코딩 그 1(화면 작성과 Snippets의 사용법)
UIView
화면에 UI를 표시하려면 UIKit 프레임워크를 사용합니다.
화면 자체(UIViewController)도 UI이므로 UIKit 프레임워크의 이용은 거의 필수입니다.
import UIKit
iOS의 UI 구성 요소는 UIView 클래스라는 클래스를 상속합니다.
UIView를 상속한 구성 요소에는 다음이 포함됩니다.
import UIKit
또한 UIView를 그룹화하고 결합하는 뷰에는 다음과 같은 구성 요소가 있습니다.
구체적으로는 다음과 같은 계층(상속 관계)으로 되어 있습니다(약간 그림이 낡아서 쓰여지지 않은 컴퍼넌트가 있습니다만 거의 변하지 않습니다)
화면에 문자 표시
모든 소스 코드입니다.
Test.playground
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Labelを作成
let label: UILabel = UILabel(frame:CGRect(x:0,y:0,width:100,height:50))
label.text = "Label"
label.textColor = UIColor.black
label.shadowColor = UIColor.gray
label.textAlignment = NSTextAlignment.center
label.layer.position = CGPoint(x:label.bounds.width/2,y:label.bounds.height/2)
self.view.addSubview(label)
print(self.view.perform(Selector(("recursiveDescription"))))
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
let viewController = ViewController()
viewController.view.backgroundColor = UIColor.white
import PlaygroundSupport
PlaygroundPage.current.liveView = viewController
PlaygroundPage.current.needsIndefiniteExecution = true
라벨 표시 부분(UILabel)은 다음과 같습니다.
// Labelを作成
let label: UILabel = UILabel(frame:CGRect(x:0,y:0,width:100,height:50))
label.text = "Label"
label.textColor = UIColor.black
label.shadowColor = UIColor.gray
label.textAlignment = NSTextAlignment.center
label.layer.position = CGPoint(x:label.bounds.width/2,y:label.bounds.height/2)
self.view.addSubview(label)
self.view.addSubview(UIView)를 사용하여
UIViewController 가 보관 유지하는 UIView 의 아이 요소에 UILabel 를 추가할 수 있습니다.
미리보기
UIView 계층 구조
다음의 1행을 추가하는 것으로 UIView의 프라이빗 메소드인 recursiveDescription 메소드를 호출해 뷰의 계층을 볼 수가 있습니다.
print(self.view.perform(Selector(("recursiveDescription"))))
UILabel이 하위 뷰로 포함되어 있는지 확인할 수 있습니다.
Unmanaged<AnyObject>(_value: <UIView: 0x7fd896903090; frame = (0 0; 768 1024); autoresize = W+H; layer = <CALayer: 0x60000003e6c0>>
| <UILabel: 0x7fd893d05b10; frame = (0 0; 100 50); text = 'Label'; userInteractionEnabled = NO; layer = <_UILabelLayer: 0x60800008ad20>>)
주의적으로 앱에 비공개 메소드가 포함되어 있으면 앱 검토를 통과하지 않으므로
앱 신청시에는 코멘트 아웃해 주세요(어디까지나 디버그용입니다.)
Playground가 아니면 View Debugging이라는 기능이 있어, 계층을 입체적으로 시각화할 수도 있습니다만, 그것에 관해서는 또 다른 기회에・・・
Reference
이 문제에 관하여(【초보자용】Swift3로 폭속 코딩 그 2(UIView와 문자 표시)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/teradonburi/items/fe79959d692c7efc99d1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Labelを作成
let label: UILabel = UILabel(frame:CGRect(x:0,y:0,width:100,height:50))
label.text = "Label"
label.textColor = UIColor.black
label.shadowColor = UIColor.gray
label.textAlignment = NSTextAlignment.center
label.layer.position = CGPoint(x:label.bounds.width/2,y:label.bounds.height/2)
self.view.addSubview(label)
print(self.view.perform(Selector(("recursiveDescription"))))
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
let viewController = ViewController()
viewController.view.backgroundColor = UIColor.white
import PlaygroundSupport
PlaygroundPage.current.liveView = viewController
PlaygroundPage.current.needsIndefiniteExecution = true
// Labelを作成
let label: UILabel = UILabel(frame:CGRect(x:0,y:0,width:100,height:50))
label.text = "Label"
label.textColor = UIColor.black
label.shadowColor = UIColor.gray
label.textAlignment = NSTextAlignment.center
label.layer.position = CGPoint(x:label.bounds.width/2,y:label.bounds.height/2)
self.view.addSubview(label)
UIView 계층 구조
다음의 1행을 추가하는 것으로 UIView의 프라이빗 메소드인 recursiveDescription 메소드를 호출해 뷰의 계층을 볼 수가 있습니다.
print(self.view.perform(Selector(("recursiveDescription"))))
UILabel이 하위 뷰로 포함되어 있는지 확인할 수 있습니다.
Unmanaged<AnyObject>(_value: <UIView: 0x7fd896903090; frame = (0 0; 768 1024); autoresize = W+H; layer = <CALayer: 0x60000003e6c0>>
| <UILabel: 0x7fd893d05b10; frame = (0 0; 100 50); text = 'Label'; userInteractionEnabled = NO; layer = <_UILabelLayer: 0x60800008ad20>>)
주의적으로 앱에 비공개 메소드가 포함되어 있으면 앱 검토를 통과하지 않으므로
앱 신청시에는 코멘트 아웃해 주세요(어디까지나 디버그용입니다.)
Playground가 아니면 View Debugging이라는 기능이 있어, 계층을 입체적으로 시각화할 수도 있습니다만, 그것에 관해서는 또 다른 기회에・・・
Reference
이 문제에 관하여(【초보자용】Swift3로 폭속 코딩 그 2(UIView와 문자 표시)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/teradonburi/items/fe79959d692c7efc99d1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
print(self.view.perform(Selector(("recursiveDescription"))))
Unmanaged<AnyObject>(_value: <UIView: 0x7fd896903090; frame = (0 0; 768 1024); autoresize = W+H; layer = <CALayer: 0x60000003e6c0>>
| <UILabel: 0x7fd893d05b10; frame = (0 0; 100 50); text = 'Label'; userInteractionEnabled = NO; layer = <_UILabelLayer: 0x60800008ad20>>)
Reference
이 문제에 관하여(【초보자용】Swift3로 폭속 코딩 그 2(UIView와 문자 표시)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/teradonburi/items/fe79959d692c7efc99d1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)