Bir UIScrollViewetkin çağn ile çerçeve genişliği (veya yüksekliği) adedi durur. Yani ilk adım, sayfalarınızın ne kadar geniş olmasını istediğinizi belirlemektir. Bunu UIScrollView. Ardından, alt görüntünüzün boyutlarını, ihtiyaç duyduğunuz kadar büyük ayarlayın ve merkezlerini UIScrollViewgenişliğin katlarına göre ayarlayın .
Ardından, set elbette diğer sayfaları, görmek istiyorum çünkü clipsToBoundshiç NOmhjoy belirtildiği gibi. İşin püf noktası, kullanıcı UIScrollViewçerçevesinin aralığı dışında sürüklemeye başladığında kaydırmasını sağlamaktır . Benim çözümüm (bunu çok yakın zamanda yapmak zorunda kaldığımda) şuydu:
Ve UIViewalt görünümlerini ClipViewiçerecek bir alt sınıf (yani ) oluşturun UIScrollView. Esasen, UIScrollViewnormal koşullar altında sahip olacağını varsayacağınız çerçeveye sahip olmalıdır . 'Nin UIScrollViewortasına yerleştirin ClipView. Genişliği üst görünümünden daha azsa ClipView's' in clipsToBoundsayarlandığından emin olun YES. Ayrıca, ClipViewbir başvuru gerekiyor UIScrollView.
Son adım geçersiz kılmak için - (UIView *)hitTest:withEvent:içeride ClipView.
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
return [self pointInside:point withEvent:event] ? scrollView : nil;
}
Bu, temelde, dokunma alanını UIScrollView, tam da ihtiyacınız olana, üst öğesinin görünümünün çerçevesine genişletir .
Diğer bir seçenek UIScrollView, - (BOOL)pointInside:(CGPoint) point withEvent:(UIEvent *) eventyöntemini alt sınıfa ayırmak ve geçersiz kılmak olabilir , ancak yine de kırpmayı yapmak için bir kap görünümüne ihtiyacınız olacak ve YESyalnızca UIScrollViewkaresine bağlı olarak ne zaman döneceğinizi belirlemek zor olabilir .
NOT: Alt görünüm kullanıcı etkileşimiyle ilgili sorunlar yaşıyorsanız , Juri Pakaste'nin hitTest: withEvent: modifikasyonuna da bir göz atmalısınız.