1-1, 1-2를 다룬 주특기 입문 강의 (1) 게시글은 여기,
1-3을 다룬 주특기 입문 강의 (2) 게시글은 여기 로
새로 알게된 내용 / 정리하고 싶은 내용 위주로 작성합니다.
1-4 ~ 1-7은 이미 야매로라도 굴러봤기 때문에 따로 정리하지 않고 iOS 주특기 입문 강의 과제 게시글로 돌아올 예정입니다.
Cocoa
: macOS 애플리케이션 개발을 위한 프레임워크
Cocoa Touch
: iOS, iPadOS, tvOS, watchOS 애플리케이션 개발을 위한 프레임워크
Foundation
: Swift File
을 생성할 때 기본 적용, 기본적인 데이터 처리와 관련된 기능 제공UIKit
: Cocoa Touch Class
를 생성할 때 기본 적용, 주로 사용자 인터페이스 구성 관련 기능 제공파일에
import Foundation
이 있는 경우 UI관련 코드가 아니라고 생각하면 되고, 반대로import UIKit
이 있는 경우 UI 관련 파일이라고 생각하면 됨
이거 몰라서 스토리보드로 화면 짜면서도 코드를 따로 작성했었는데...
어트리뷰트 인스펙터에서 보이지 않는 속성은
여기서 지정해줄 수가 있었다...!!!
런타임 속성 지정이기 때문에 스토리보드에선 안보이고 실행해야 보임.
앞으로 스토리보드로 짜게 되면 이걸 잘 활용해야겠군 ㅠㅠ
UIScrollView 안의 View height를 설정하는 예시이다.
Priority가 기본 1000으로 맞춰져 있는데, 이 값을 내리면 해당 제약조건의 우선순위가 낮아짐.
즉 다른 애들 제약조건이 들어왔을 때 해당 제약조건을 유동적으로 적용하게 된다.
: 컨텐츠를 표시하는 구분선으로, 한 요소와 다른 요소 또는 부모 요소 간의 외부 여백이다. Swift에서 직접적으로 margin 속성을 제공하지는 않지만, 오토레이아웃이나 프레임을 설정함으로써 margin을 관리할 수 있다.
예제:
let label = UILabel()
label.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(label)
NSLayoutConstraint.activate([
label.topAnchor.constraint(equalTo: view.topAnchor, constant: 20),
label.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 20),
label.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -20)
])
: 요소의 경계를 감싸는 선으로, UIView
의 layer
속성을 사용해 border 추가 가능
예제:
let view = UIView()
view.layer.borderWidth = 2.0
view.layer.borderColor = UIColor.black.cgColor
: 요소의 내용과 그 경계 사이의 내부 여백. Swift에서는 주로 UILabel
이나 UIButton
같은 요소에서 padding
개념을 직접적으로 제공하지 않지만, 커스텀 뷰를 만들거나 UIView
의 layoutSubviews
메서드를 오버라이드해서 padding을 구현할 수 있다.
예제:
class PaddedLabel: UILabel {
var padding = UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10)
override func drawText(in rect: CGRect) {
let insetRect = rect.inset(by: padding)
super.drawText(in: insetRect)
}
override var intrinsicContentSize: CGSize {
let size = super.intrinsicContentSize
return CGSize(width: size.width + padding.left + padding.right,
height: size.height + padding.top + padding.bottom)
}
}
let label = PaddedLabel()
label.text = "Hello, Padding!"
UIView
의 layer
속성을 통해 설정.layoutSubviews
메서드 오버라이드로 구현.