Sobes.tech
Junior

iOS өнүктүрүү контекстинде катмар (layer) эмне?

sobes.tech AI

AIден жооп

CALayer — бул объект, ал визуалдык мазмунду башкарган (UIView). Көрүнүштөр өз мазмунун экранда салуу үчүн катмарларды колдонушат. Катмардар тийүү окуяларын иштетпейт, көрүнүштөрдөн айырмаланып.

Катмардардын негизги функциялары:

  • мазмунду көрсөтүү ( сүрөттөр, текст, графика)
  • геометрияны башкаруу (ордунашу, өлчөмү, айлануу)
  • сырткы көрүнүштү жөндөө (фон, чектер, көлеңкелер, бурчтарды тегиздөө)
  • анимацияларды колдоо (жасырын жана ачык)

CALayer негизги касиеттери:

  • contents: Any? - катмардын мазмуну, көбүнчө CGImage
  • frame: CGRect - катмардын superlayerге карата жайгашуусу жана өлчөмү
  • bounds: CGRect - катмардын өзүнүн координат системасындагы жайгашуусу жана өлчөмү
  • position: CGPoint - катмардын superlayerге карата борбору
  • anchorPoint: CGPoint - катмардын айлануучу чекити, нормалдаштырылган координаттарда (0ден 1ге чейин)
  • backgroundColor: CGColor? - катмардын фон түсү
  • borderColor: CGColor? - катмардын чекесинин түсү
  • borderWidth: CGFloat - чекенин кендиги
  • cornerRadius: CGFloat - бурчтарды тегирөө радиусу
  • shadowColor: CGColor? - көлеңкенин түсү
  • shadowOpacity: Float - көлеңкенин көрүнбөөчүлүгү (0дон 1ге чейин)
  • shadowOffset: CGSize - көлеңкенин жылышы
  • shadowRadius: CGFloat - көлеңкенин тегирөө радиусу
  • opacity: Float - катмардын көрүнбөөчүлүгү
  • isHidden: Bool - катмар жашырылганбы же жокпу
  • transform: CATransform3D - катмардын үч өлшемдүү өзгөртүүлөрү

Катмардардын иерархиясы:

Катмардар иерархия түзөт, ал көрүнүштөрдүн иерархиясына окшош. Ар бир катмарда superlayer жана sublayers массиви болушу мүмкүн.

Колдонуу:

UIView көрүнүштөрү өзүнүн негизги катмары (layer) аркылуу анын визуалдык касиеттерине жетүү жана анимациялар жасоо мүмкүнчүлүгүн берет. Катмардарды көрүнүшкө кошуу аркылуу көбүрөөк татаал визуалдык эффекттер түзүүгө болот.

Катмарга жетүү мисалы:

// Көрүнүштүн фон түсүн анын катмары аркылуу өзгөртүү
myView.layer.backgroundColor = UIColor.red.cgColor

// Көрүнүштүн катмасына көлеңке кошуу
myView.layer.shadowColor = UIColor.black.cgColor
myView.layer.shadowOpacity = 0.5
myView.layer.shadowOffset = CGSize(width: 2, height: 2)
myView.layer.shadowRadius = 4