Mam, UIScrollView
który ma kilka widoków. Gdy użytkownik pstryknie palcem, widok jest przewijany w prawo lub w lewo w zależności od kierunku ruchu palcem. Zasadniczo mój kod działa w sposób podobny do aplikacji do zdjęć na iPhonie. Teraz, czy istnieje sposób, w jaki mogę programowo zrobić to samo, aby skończyć z pokazem slajdów, który działa samodzielnie po kliknięciu przycisku i konfigurowalnej pauzie między każdym przewijaniem?
Jak naprawdę robisz pokazy slajdów UIScrollView
?
źródło
(myScrollView.contentOffset.x +320)
.(myScrollView.contentOffset.x +320)
kłamstwie leży klucz!contentOffset:
zrównoważy również contentSize, co może nie być pożądane. Aby tylko przewijać, możesz użyćscrollRectToVisible:
.CGPointMake
w Swift. Po prostu zbuduj strukturę Swift bezpośrednio:CGPoint(x: 0, y: 44)
Jeśli chcesz mieć kontrolę nad czasem trwania i stylem animacji, możesz:
Dostosuj czas trwania (
2.0f
) i opcje (UIViewAnimationOptionCurveLinear
) do smaku!źródło
Innym sposobem jest
źródło
CGPoint
powinnoCGPointMake
.Z animacją w języku Swift
źródło
Jestem zdumiony, że ten temat ma 9 lat, a rzeczywistej prostej odpowiedzi tutaj nie ma!
To, czego szukasz, to
scrollRectToVisible(_:animated:)
.Przykład:
To, czego potrzebujesz, jest dokładnie tym, czego potrzebujesz i jest znacznie lepsze niż hacky
contentOffset
Od: https://developer.apple.com/documentation/uikit/uiscrollview/1619439-scrollrecttovisible
źródło
źródło
Szybki 3
źródło
źródło
źródło