Junior — Middle
Կարող եք տալ օրինակ, երբ տարրի շրջանակը և նրա սահմանները չափով չեն համընկնում?
sobes.tech AI
Պատասխան AI-ից
iOS-ում UIView-ի (frame) շրջանակը նկարագրում է տարրի դիրքը և չափը նրա սուպերվյուի նկատմամբ, մինչդեռ սահմանները (bounds) նկարագրում են ինքնուրույն տարրի ներքին կոորդինատային համակարգը:
Օրինակ, երբ շրջանակը և սահմանները չեն համընկնում չափով, դա տեղի է ունենում, երբ UIView-ին կիրառվում է փոխակերպում, օրինակ՝ մասշտաբավորում կամ պտտում։ Այս դեպքում, frame հաշվարկվում է փոխակերպման հաշվի առնելով և կարող է տարբերվել bounds-ից:
let view = UIView(frame: CGRect(x: 50, y: 50, width: 100, height: 100))
view.transform = CGAffineTransform(scaleX: 2, y: 2)
print(view.frame) // շրջանակը մեծանում է մասշտաբի հաշվարկով
print(view.bounds) // սահմանները կմնան (0,0,100,100)
Այստեղ, bounds մնում է նույնը, իսկ frame փոխվում է՝ արտացոլելով նոր չափը և դիրքը փոխակերպումից հետո։