Sobes.tech
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.origin vá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.