μ
λ ₯ν ν
μ€νΈλ₯Ό μ κ΄ν νλ©΄μ 보μ¬μ£Όλ μ± π± (SSAC κ³Όμ νλ‘μ νΈ)
μ¬μ© κ°λ
: UITextField
, FirstResponder
, UIButton
, TapGestureRecognizer
, Delegation
, Target-Action
, UIScrollview
β iOS Version, Device Orientation μ€μ
β AppIcon μ μ©
β 리μμ€ μ΄λ―Έμ§κ° λ¨μΌ ν΄μλλ§ μ λ¬λμ΄μ μ΄ λ§ν¬ μμ ν΄μλλ³ μμ΄μ½μ μμ±ν΄μ λ£μ΄μ£Όμλ€.
β LaunchScreen
- μ΄λ―Έμ§ μΆκ°
- 3μ΄κ° κ°μ λ‘ λ³΄μ¬μ£Όλ λ‘μ§ λ£μ΄μ£ΌκΈ°
β Xcode12 μμλ μλλ padding λ£κΈ° μ§μ ꡬν
β IntrinsicContentSize
λμ Autolayout μ μ½μ μ¬μ©νλ€λ©΄ contentInset
μΌλ‘ ν΄κ²°νλ©΄ λ κ² κ°λ€.
β μ± κ΅¬μ±μ΄ νλ©΄ νλλΏμ΄λΌμ νΈμμ UIButton μ λ°λ‘ μλΈν΄λμ±ν΄μ μ¬μ©νμ§ μμλ€.
extension UIButton {
private var customDefinedHorizontalPadding: CGFloat {
get {
return 24
}
}
open override var intrinsicContentSize: CGSize {
get {
let baseSize = super.intrinsicContentSize
return CGSize(width: baseSize.width + (customDefinedHorizontalPadding * 2),
height: baseSize.height)
}
}
}
β
κΈ°λ³Έμ μΈ νλ©΄ ꡬμ±
β Outlet μ°κ²° ν, μ½λλ‘ UI μμ
β didSet
μ 컀μ€ν
λ©μλ νΈμΆ
@IBOutlet weak var boardView: UIView! {
didSet {
applyRoundDesign(to: boardView)
}
}
...
private func applyRoundDesign(to view: UIView) {
view.layer.cornerRadius = view.frame.height/4
view.layer.borderColor = UIColor.black.cgColor
view.layer.borderWidth = 1
}
β Button Action μ TextField μ Text λ³κ²½ λ‘μ§ μΆκ°
β Aa Button μ ν΄λ¦νλ©΄, Label μ ν μ€νΈμ»¬λ¬κ° λλ€μΌλ‘ λ³ν
@IBAction func didTapColorButton(_ sender: Any) {
let redValue : CGFloat = CGFloat((1...256).randomElement()!) / CGFloat(256)
let greenValue : CGFloat = CGFloat((1...256).randomElement()!) / CGFloat(256)
let blueVlaue: CGFloat = CGFloat((1...256).randomElement()!) / CGFloat(256)
let randomColor = UIColor(red: redValue, green: greenValue, blue: blueVlaue, alpha: 1)
resultLabel.textColor = randomColor
}
β ν μ μ€μ³κ° μ€νλλ©΄ ν€λ³΄λλ₯Ό λ΄λ €μ£ΌκΈ°
β TapGestureRecognizer λ RootView μ μΆκ°ν΄μ£Όμκ³ , μ‘μ
μ μ°κ²°νμ¬ resignFristResponder() λ₯Ό νΈμΆν΄μ£Όμλ€.
β ν€λ³΄λ 리ν΄ν€λ₯Ό λλ₯΄λ©΄ ν€λ³΄λκ° λ΄λ €κ°κ² ꡬννκΈ°
β λ¦¬ν΄ ν€λ₯Ό λλ₯΄λ©΄ Did End On Exit
λ©μμ§κ° μ λ¬λλ€. μ΄κ²μ μ²λ¦¬ν μ‘μ
μ ꡬννλ©΄ λλ€.
β λ€λ₯Έ λ°©λ²μΌλ‘ UITextFieldDelegate μ€μλ κ΄λ ¨ λ©μλκ° μμκΉ?? μμ
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
resultLabel.text = textField.text
textField.resignFirstResponder()
return true
}
β ν μ μ€μ²λ₯Ό ν΄λ¦μ¨ μλ¨ View κ° ν κΈ ννλ‘ μ¨κ²Όλ€ 보μλ€ νλ κΈ°λ₯μ ꡬν
β κΈμμκ° λ§μμ§λ©΄ μλμΌλ‘ μ€ν¬λ‘€ λκ² κ΅¬ν
β κΈ°μ‘΄μ μ€ν¬λ‘€λ·° κΈ°μ‘΄ μ€μ μ κ·Έλλ‘ μ§ν
β UILabel κ³Ό μ€ν¬λ‘€λ·°μ 컨ν
μΈ λ£¨νΈλ·°μ μ€νμ΄μ± μ μ½μ κ±Έκ³ , μμλ·°μ width μ μ½μ equltTo μμ greaterThan μΌλ‘ λ°κΏμ£Όλ©΄ λμ μΌλ‘ μ¦κ°νλΉ!