İçinde paging ile bir UIScrollView var (bu yüzden UIPageControl ile tipik bir model ve sayfalar arasında sol ve sağa sürükleyip/sürükleyerek). Bu iyi çalışıyor. Garip olan şey, sıçramaktan kurtulmak istediğimde (böylece sol ve sağ taraftaki UI'nin arkasında siyahı göremezsiniz), aniden çağrı yapmak artık işe yaramaz. Başka bir deyişle UIScrollView - (bounces = NO) geçersiz kılınmış görünüyor (pagingEnabled = YES)
:scrollView.pagingEnabled = YES;
scrollView.bounces = YES;
herşey I dışında çalışıyor sayfasında (0) ve sayfanın (uzunluk-1) de sıçrayan sevmiyorum. Ama ne zaman bu:
scrollView.pagingEnabled = YES;
scrollView.bounces = NO;
yerine, her sayfada yerine yapışma bir uzun sayfa olarak birlikte tüm sayfaları tedavi durur. Öyle görünüyor ki, bazı sebeplerden dolayı, sayfalama sıçrayanlara bağımlıdır, bu da bir şekilde zıplamayı durdurabildiğim kadar iyidir. Yani, ondan kurtulmanın başka bir yolu var mı? Yoksa yanlış yaptığım bir şey mi var?
DÜZENLEME: çözüm:
@interface PagingScrollView : UIScrollView
@end
@implementation PagingScrollView
- (id)initWithFrame:(CGRect)frame
{
if (self = [super initWithFrame:frame])
{
self.pagingEnabled = YES;
self.bounces = YES;
}
return self;
}
- (void)setContentOffset:(CGPoint)offset
{
CGRect frame = [self frame];
CGSize contentSize = [self contentSize];
CGPoint contentOffset = [self contentOffset];
// Clamp the offset.
if (offset.x <= 0)
offset.x = 0;
else if (offset.x > contentSize.width - frame.size.width)
offset.x = contentSize.width - frame.size.width;
if (offset.y <= 0)
offset.y = 0;
else if (offset.y > contentSize.height - frame.size.height)
offset.y = contentSize.height - frame.size.height;
// Update only if necessary
if (offset.x != contentOffset.x || offset.y != contentOffset.y)
{
[super setContentOffset:offset];
}
}
@end
Vay, bu aptalca. Bunu deneyeceğim, sadece bu konudaki "büyük kazanan" olabilirsiniz. – Eli
Çalışıyor, fakat -setContentOffset: -setContentOffset'i değil, her zaman çağrılmayan bir işlevi çağıracaktır, bu durumda, eski, contentOffset için mutator işlevini geçersiz kılar, böylece tüm vakaları yakalarsınız. – Eli
Bu garip. Bu tür bir çok şey yapıyorum ve genellikle tek parametre yöntemi, animasyonlu varyantı animasyonlu olarak çağırır: EVET – rpetrich