Junior — Middle
Tudsz példát mondani arra, hogy standard komponensek használata esetén az origin tulajdonság a bounds esetében eltér a nullától?
sobes.tech MI
Válasz az MI-től
iOS-ben a bounds-ban lévő origin tulajdonság általában (0,0), mivel a bounds a saját koordináta-rendszerében írja le a koordinátákat és méreteket.
Azonban vannak olyan esetek, amikor a bounds.origin eltér a nullától:
- Animációk használatakor, amelyek a
bounds.origin-t módosítva mozgatják a tartalmat anélkül, hogy a nézet pozícióját megváltoztatnák. - UIScrollView esetén a
bounds.originváltozik görgetés közben, tükrözve a tartalom eltolását a scroll view belsejében.
Példa UIScrollView-vel:
let scrollView = UIScrollView(frame: CGRect(x: 0, y: 0, width: 300, height: 500))
scrollView.contentSize = CGSize(width: 300, height: 1000)
// Lefelé görgetéskor
scrollView.contentOffset = CGPoint(x: 0, y: 100)
// Ekkor a `bounds.origin.y` 100 lesz, tükrözve a tartalom eltolását
print(scrollView.bounds.origin) // (0.0, 100.0)
Tehát, a bounds.origin akkor tér el a nullától, amikor a belső tartalom eltolását kell tükrözni anélkül, hogy a komponens pozícióját megváltoztatnánk a képernyőn.