uiview - 如何快速独立地增加和减少 UIView 的宽度和高度?
问题描述
我有一个视图,我想根据用户的需要调整它的大小,这意味着用户可以独立地增加或减少 UIView 的高度或宽度。我尝试过使用捏合手势,但它可以同时使用宽度和高度。我在 UIView 上实现了平移手势以在屏幕上移动它。
func addGestures() {
let gestureRecognizer = UIPanGestureRecognizer(target: self, action: #selector(handlePan))
gestureRecognizer.delegate = self
myView.addGestureRecognizer(gestureRecognizer)
myView.isUserInteractionEnabled = true
myView.isMultipleTouchEnabled = true
//add pinch gesture
let pinchGesture = UIPinchGestureRecognizer(target: self, action:#selector(pinchRecognized(pinch:)))
pinchGesture.delegate = self
myView.addGestureRecognizer(pinchGesture)
}
@objc func handlePan(_ gestureRecognizer: UIPanGestureRecognizer) {
if gestureRecognizer.state == .began || gestureRecognizer.state == .changed {
let translation = gestureRecognizer.translation(in: self.view)
// note: 'view' is optional and need to be unwrapped
gestureRecognizer.view!.center = CGPoint(x: gestureRecognizer.view!.center.x + translation.x, y: gestureRecognizer.view!.center.y + translation.y)
gestureRecognizer.setTranslation(CGPoint.zero, in: self.view)
}
}
@objc func pinchRecognized(pinch: UIPinchGestureRecognizer) {
if let view = pinch.view {
view.transform = view.transform.scaledBy(x: pinch.scale, y: pinch.scale)
pinch.scale = 1
}
}
那么我该怎么做呢?
解决方案
推荐阅读
- twig - 检查树枝中的电子邮件地址
- memory-management - 为什么多级页表中的条目包含的位少于寻址主存储器所需的位?
- node.js - pool.connect (PG) 和 db.query (PG_PROMISE) 突然需要 20 秒才能执行?
- sql-server - 为什么来自 DbContext 的 Linq 查询不从带参数的表值函数向实体返回任何数据
- excel - 将部分日期从字段 A 复制并替换到 B
- symfony - Nelmioapidocbundle 不适用于 symfony 5.0.2 ans 注释
- arrays - 如何使用 PowerShell 继续循环?
- slim - 替换 Slim 中间件中请求对象的内容
- apache-spark - 在 spark return py4j.protocol.Py4JJavaError 中从 PostgreSQL 读取数据
- flutter - 如何将 Equatable 扩展到已经扩展和混合的类?