Junior
რა არის ფენა (layer) iOS-ის განვითარების კონტექსტში?
sobes.tech AI
პასუხი AI-სგან
CALayer — ეს ობიექტია, რომელიც მართავს ვიზუალურ შინაარსს (UIView). ხედები იყენებენ ლეიერს თავიანთი შინაარსის ეკრანზე გამოსახულებისთვის. ლეიერები არ მართავენ შეხების მოვლენებს, განსხვავებით ხედებისგან.
ლეიერების ძირითადი ფუნქციები:
- შინაარსის ჩვენება (სურათები, ტექსტი, გრაფიკა)
- გეომეტრიის მართვა (პოზიცია, ზომა, ბრუნვა)
- გარეგნობის კონფიგურაცია (ფონი, საზღვრები, ჩრდილები, მრუდი კუთხეები)
- ანიმაციების მხარდაჭერა (საზრიანი და აშკარა)
CALayer ძირითადი თვისებები:
contents:Any?- ლეიერის შინაარსი, ჩვეულებრივCGImageframe: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