Cod*_*nts 31 iphone zoom zooming uiscrollview ios
有没有人知道在使用UIScrollView时暂时关闭缩放的方法?
我看到你可以使用以下方法禁用滚动:
self.scrollView.scrollEnabled = false;
Run Code Online (Sandbox Code Playgroud)
但我没有看到类似的缩放命令.有什么想法吗?
com*_*ial 43
如果要禁用用户缩放手势的功能,那么在iOS 5及更高版本中,您可以禁用捏合手势.这仍然允许您从代码控制滚动视图...
scrollView.pinchGestureRecognizer.enabled = NO;
Run Code Online (Sandbox Code Playgroud)
同样适用于锅...
scrollView.panGestureRecognizer.enabled = NO;
Run Code Online (Sandbox Code Playgroud)
必须在之后- (void)viewDidAppear:(BOOL)animated或之后调用此方法,否则系统会将其重置为启用.
Cod*_*nts 29
按照上面的fbrereto的建议,我创建了两个函数lockZoom和unlockZoom.锁定Zoom时,我将最大和最小缩放比例复制到变量,然后将最大和最小缩放比例设置为1.0.解锁缩放只是反转过程.
-(void)lockZoom
{
maximumZoomScale = self.scrollView.maximumZoomScale;
minimumZoomScale = self.scrollView.minimumZoomScale;
self.scrollView.maximumZoomScale = 1.0;
self.scrollView.minimumZoomScale = 1.0;
}
-(void)unlockZoom
{
self.scrollView.maximumZoomScale = maximumZoomScale;
self.scrollView.minimumZoomScale = minimumZoomScale;
}
Run Code Online (Sandbox Code Playgroud)
小智 16
您也可以在UIScrollViewDelegate中返回"nil"作为缩放视图:
- (UIView *) viewForZoomingInScrollView:(UIScrollView *) scrollView
{
return canZoom?view:nil;
}
Run Code Online (Sandbox Code Playgroud)
小智 5
我试过设置minimumZoomScale和maximumZoomScale属性UIScrollViewto1或isMultipleTouchEnabled属性UIViewtofalse或 return nilfrom viewForZooming(in:)ofUIScrollViewDelegate但没有奏效。就我而言,经过多次反复试验,以下在我的情况下有效[在 iOS 10.3 上测试]:
class MyViewController: UIViewController {
var webView: WKWebView?
override viewDidLoad() {
super.viewDidLoad()
//...
self.webView.scrollView.delegate = self
//...
}
}
extension MyViewController: UIScrollViewDelegate {
func scrollViewWillBeginZooming(_ scrollView: UIScrollView, with view: UIView?) {
scrollView.pinchGestureRecognizer?.isEnabled = false
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21474 次 |
| 最近记录: |