的UIScrollView - (反弹= NO)似乎重写(pagingEnabled = YES)
-
22-07-2019 - |
题
我有在它的寻呼一个UIScrollView(所以有UIPageControl典型示范和拖动/左右轻和页面之间的权利),我已经得到了工作的罚款。奇怪的是,当我想摆脱跳跃(使你不能看到黑色的左侧和右侧的UI后面),突然寻呼不再起作用的。
在换句话说,当:
scrollView.pagingEnabled = YES;
scrollView.bounces = YES;
一切正常,除了我不喜欢在页面(0)和页面(长度-1)的弹跳。但是,当我这样做:
scrollView.pagingEnabled = YES;
scrollView.bounces = NO;
它停止卡入到位在每个页面上,而不是治疗所有页面在一起作为一个长页面。如此看来,由于某种原因,寻呼取决于弹跳,这是很好的,只要我能以某种方式停止跳动。那么,有没有另一种方式来摆脱它?或者是有什么我做错了吗?
编辑: 的解决方案:强>
@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
解决方案
您最好的选择将写一个UIScrollView
子类,并手动执行所需的行为。你应该能够开始与pagingEnabled
和bounces
均设定为YES
,然后用自己的方法覆盖-setContentOffset:
是夹子夹住。
不隶属于 StackOverflow