ios - 如何快速获取通用类型项目的高度
问题描述
我有一个函数(在 UIViewController 扩展中)需要采用泛型类型(因为我可以传入一个按钮、一个 UITextField 等)。在该函数中,我需要找到通用类型(按钮、UITextField 等)的高度和宽度。我使用此信息能够根据键盘高度向上滚动页面以使按钮或任何可见的按钮。它的代码在下面。
extension UIViewController {
func scrollUpKeyboard<Object>(object: Object, keyboardHeight: CGFloat, realOrigin:
CGPoint) {
var buttonHeight = self.view.frame.size.height - (object.frame.size.height +
realOrigin.y)
if keyboardHeight > buttonHeight {
self.ScrollUpFromKeyboard(amount: keyboardHeight - buttonHeight)
} else {
self.ScrollUpFromKeyboard(amount: -10)
}
}
// More code
}
我得到的错误是“'对象'类型的值没有成员'框架'。” 如何获取通用对象的高度和宽度。
解决方案
这些不是通用对象。它们都是 UIView,它是一个超类。你可以通过它:
func scrollUpKeyboard(object: UIView, ...
推荐阅读
- django - Docker/Kubernetes + Gunicorn/Celery - 多个工人与副本?
- python - Py4JJava错误 | java.lang.IllegalArgumentException | 来自 Jupyter 的 Spark 错误 | 计数()不工作
- tensorflow - 无法在张量流中创建 MultiRNN 单元
- actionscript-3 - AS3 - 在 StageVideo 上检测触摸/点击
- vba - MS Access - 基于组合框在连续表单上禁用文本框
- python - ModelBase 对象不可迭代错误
- php - 如何在codeigniter 3中使用csrf
- mysql - 查询以从 3 个不同表中获取不同键的数据
- html - 如何创建响应式水平时间线
- apache-nifi - 支持 Java 作为 Apache Nifi 中执行脚本处理器中的语言