我有一个UIImageView元素作为我的主UIScrollView元素的子视图。 我希望图像始终填满整个屏幕,但我可以拖动边缘太远,以便黄色的“背景”变得可见。 如果我抬起手指,图像会“反弹”并正确填充屏幕。UIScrollView - 阻止UIImageView作为UIScrollView的子视图被拖出屏幕
我想阻止这种拖动图像的屏幕。 但是我确实希望图像一旦从“安全区域”拖出就会反弹回来。
这是我的滚动型初始化:
- (id)initWithFrame:(CGRect)frame{
self = [super initWithFrame:CGRectMake(0, 0, frame.size.height, frame.size.width)];
if (self) {
[self initImageValues];
self.showsVerticalScrollIndicator = NO;
self.showsHorizontalScrollIndicator = NO;
self.bouncesZoom = YES;
self.decelerationRate = UIScrollViewDecelerationRateFast;
self.delegate = self;
self.backgroundColor = [UIColor yellowColor];
self.minimumZoomScale = 1.0;
self.maximumZoomScale = 2.0;
[self setCanCancelContentTouches:YES];
self.clipsToBounds = YES;
// Load Image
imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:imageName]];
[self addSubview:imageView];
[self setContentSize: CGSizeMake(imageView.frame.size.width, imageView.frame.size.height)];
// Set bigger "bounce" zone (safety area)
self.contentInset=UIEdgeInsetsMake(-SAFETY_ZONE,-SAFETY_ZONE,-SAFETY_ZONE,-SAFETY_ZONE);
self.scrollEnabled = YES;
}
return self;}
这正是我所错过的。我现在已经包含了一些if检查图像是否会离开屏幕,然后设置图像位置,以便图像在屏幕上显示。再加上反弹仍然有效。很好,谢谢! – Mauin
没问题,祝你的项目好运! –