Sobes.tech
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 განსხვავდება ნულიდან, როდესაც საჭიროა შიგთავსის შიდა გადაადგილების ასახვა, ისე რომ მისი პოზიცია ეკრანზე არ შეიცვალოს.