Junior — Middle
შეგიძლიათ სტანდარტული კომპონენტების გამოყენების მაგალითი მოყოთ, სადაც bounds-ისთვის origin-ის თვისება ნულიდან განსხვავდება?
sobes.tech AI
პასუხი AI-სგან
iOS-ში, bounds-ის origin თვისება ჩვეულებრივია (0,0), რადგან bounds აღწერს კოორდინატებს და ზომას საკუთარი კოორდინატული სისტემაში UIView.
თუმცა, არსებობს შემთხვევები, როდესაც bounds.origin განსხვავდება ნულიდან:
- როდესაც გამოიყენება ანიმაციები, რომლებიც იცვლიან
bounds.origin-ს შიგთავსის გადატანისთვის, ისე რომ არ შეიცვალოს ხედვის პოზიცია. - UIScrollView-ში,
bounds.originიცვლება სქროლვის დროს და ასახავს შიგთავსის გადაადგილებას შიგნით scroll view-ის.
მაგალითი UIScrollView-თან:
let scrollView = UIScrollView(frame: CGRect(x: 0, y: 0, width: 300, height: 500))
scrollView.contentSize = CGSize(width: 300, height: 1000)
// ქვემოთ სქროლვის დროს
scrollView.contentOffset = CGPoint(x: 0, y: 100)
// მაშინ, `bounds.origin.y` იქნება 100, შიგთავსის გადაადგილების ასახვა
print(scrollView.bounds.origin) // (0.0, 100.0)
ამიტომ, bounds.origin განსხვავდება ნულიდან, როდესაც საჭიროა შიგთავსის შიდა გადაადგილების ასახვა, ისე რომ მისი პოზიცია ეკრანზე არ შეიცვალოს.