iOS-da sürüş zamanı istifadəçi interfeysinin elementlərinin hündürlüyü və eni necə dəyişir?
sobes.tech Süni İntellekt
AI-dan cavab
Standart tətbiqdə, UIView elementlərinin hündürlüyü və enliyi UIScrollView və ya onun törəmələri (UITableView, UICollectionView) daxilində sürüşdürülərkən dəyişmir.
Elementlərin mövqeyi (frame.origin dəyəri) scroll view-in bounds-una nisbətən dəyişir. scroll view-in bounds-u sürüşdürülərkən hərəkət edir, lakin onun ölçüsü (bounds.size) sabit qalır (yəni frame.size ilə eynidir).
Sürüşdürülə bilən məzmunun ölçüsü contentSize xüsusiyyəti ilə müəyyən edilir. contentSize daxilində yerləşən elementlər sürüşdürülərkən görünəcək.
Sürüşdürmə zamanı elementlərin ölçüsünün dəyişməsi (paralaks və ya sıxılma/genişləmə effekti) avtomatik baş vermir və əlavə məntiq tələb edir:
-
UIScrollViewDelegatedaxilində tətbiq:contentOffsetdəyişməsinin izlənməsi vəscrollViewDidScroll(_:)metodunda müvafiq elementinframevə yabounds-unun əl ilə dəyişdirilməsi.// Sürüşdürmə zamanı elementin hündürlüyünü dəyişdirmək nümunəsi func scrollViewDidScroll(_ scrollView: UIScrollView) { let yOffset = scrollView.contentOffset.y let initialHeight: CGFloat = 200 let maxHeight: CGFloat = 300 // Aşağı sürüşdürərkən sıxılma, yuxarı sürüşdürərkən genişlənmə nümunəsi let newHeight = max(0, min(maxHeight, initialHeight - yOffset)) someView.frame.size.height = newHeight // Mövqeyin idarə olunması, əgər nişan yuxarıda deyilsə } -
UIVisualEffectView-dən istifadə: Bulanıq və ya vibrasiya effektləri üçün, sürüşdürmə zamanı altındakı məzmun asılı olaraq dəyişə bilər. -
Xüsusi layoutlar:
UICollectionViewdaxilində, sürüşdürmə zamanı hüceyrələrin transformasiyalarını idarə etmək üçün xüsusiUICollectionViewLayoutyaradıla bilər. -
Animasiyalar:
UIViewPropertyAnimatorvə ya digər animasiya mexanizmlərindən istifadə, sürüşdürmə hadisəsi ilə başlatıla bilər.
Beləliklə, əsas davranış — ölçü dəyişməzdir. Hər hansı ölçü dəyişiklikləri xüsusi tətbiqin nəticəsidir.