gpt4 book ai didi

ios - UISplitViewController - 通过拖动分隔线来调整 View 大小

转载 作者:行者123 更新时间:2023-11-30 11:07:15 29 4
gpt4 key购买 nike

我认为这是 UISplitViewController 的一个基本功能,允许通过拖动分隔线来调整主视图/详细 View 的大小。阅读文档后,我发现这在 iOS 应用程序上是不可能的。不过,我确实发现 iOS 上的应用程序具有带有可拖动分隔线的 SplitView,用于调整主视图/详细 View 的大小。

有人做过吗?如果是的话,您能帮我指点一下吗?提前致谢。

最佳答案

我不确定这是否能回答您的查询,但只是一个小代码,只需将一个简单的 UISwipeGestureRecognizer 添加到您的 MasterViewController 的 View 即可。

如果您使用的是 iOS 8.0 或更高版本,则可以使用 minimumPrimaryColumnWidthmaximumPrimaryColumnWidth 以及 preferredPrimaryColumnWidthFraction

我已将左右滑动手势识别器添加到 MasterViewController 的 View 中。

@IBAction func swipeGesture(_ sender: UISwipeGestureRecognizer) {


if sender.direction == .left {
UIView.animate(withDuration: 0.4) {
self.splitViewController?.minimumPrimaryColumnWidth = 200.0
self.splitViewController?.preferredPrimaryColumnWidthFraction = 0.0
self.splitViewController?.maximumPrimaryColumnWidth = 320.0
}
} else if sender.direction == .right {
UIView.animate(withDuration: 0.4) {
self.splitViewController?.minimumPrimaryColumnWidth = 200.0
self.splitViewController?.preferredPrimaryColumnWidthFraction = 1.0
self.splitViewController?.maximumPrimaryColumnWidth = 320.0
}
}

}

您还可以尝试使用平移手势(如下所列)来精细控制触摸 Action 。

 let maximumPossibleWidth:CGFloat = 320.0
var beganPoint:CGFloat = 320.0
@IBAction func panGesture(_ sender: UIPanGestureRecognizer){




if sender.state == .began {
//Began
beganPoint = sender.location(in: sender.view).x
return
}

if sender.state == .changed {

let currentPoint = sender.location(in: sender.view).x
let fraction = currentPoint / maximumPossibleWidth

if beganPoint > currentPoint {
//left
self.splitViewController?.minimumPrimaryColumnWidth = 100.0
self.splitViewController?.preferredPrimaryColumnWidthFraction = fraction
self.splitViewController?.maximumPrimaryColumnWidth = 320.0
}else {
//right
self.splitViewController?.minimumPrimaryColumnWidth = 100.0
self.splitViewController?.preferredPrimaryColumnWidthFraction = fraction
self.splitViewController?.maximumPrimaryColumnWidth = 320.0
}

}
}

关于ios - UISplitViewController - 通过拖动分隔线来调整 View 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52569059/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com