Sobes.tech
Junior

რა არის ფენა (layer) iOS-ის განვითარების კონტექსტში?

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