【问题标题】:iOS UIViewController DatePicker blocking TableViewCelliOS UIViewController DatePicker 阻塞 TableViewCell
【发布时间】:2016-09-16 21:06:14
【问题描述】:

我刚刚加入了堆栈溢出。我在这里和互联网上查看了很多示例,但没有找到解决我的问题的方法(可能错过了,如果我有,请道歉)。

问题 - 在 iPhone 上:

目前我在屏幕上有一个 UIViewController,它有一个固定在父视图顶部的 UIView。在它下面我有一个带有各种不同单元格的 TableView。这些单元格包含文本字段和其他控件。

所以问题是当我专注于文本字段时,键盘会弹出并阻止用户查看单元格。我已经修复了使用键盘通知将显示和隐藏机制的问题。

但是,我有一个包含两个标签的单元格,但它的输入视图是一个 DatePicker,它出现在键盘通常所在的位置。当焦点出现在此单元格上时,tableview 不会向上滚动。

有人见过这个吗?

当键盘弹出文本字段时,我会收到通知并运行以下代码:

UIEdgeInsets contentInsets = new UIEdgeInsets(0.0f, 0.0f, height, 0.0f);
UIView.BeginAnimations(null, IntPtr.Zero);
UIView.SetAnimationCurve(args.AnimationCurve);
UIView.SetAnimationDuration(args.AnimationDuration);
TableView.ContentInset = contentInsets;
TableView.ScrollIndicatorInsets = contentInsets;

高度是根据通知中的参数计算得出的。

【问题讨论】:

    标签: ios objective-c uitableview scroll keyboard


    【解决方案1】:

    解决方案 1:

    如果您想在单元格标签上出现焦点时滚动表格视图,您可以选择https://www.cocoacontrols.com/controls/bizpickerviewcontrollerhttps://www.cocoacontrols.com/controls/iqactionsheetpickerview

    它将具有委托方法,您可以在其中调整您的 tableview 位置。

    解决方案 2:

    您可以通过调整日期选择器视图的框架来实现该解决方案。就像当焦点来到标签时,您可以从底部显示日期选择器视图。意思是您可以通过计算日期选择器的高度来调整 tableiview 的位置。但你不能单独调整单元格的位置。

    希望这会对您有所帮助。

    【讨论】:

    • 感谢您的回复 - 我以为我已经在做类似的事情了。我已经用示例代码更新了我的问题,当键盘通知发生时会发生什么。这是你的意思吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-09
    • 2012-10-08
    • 2018-03-21
    • 1970-01-01
    相关资源
    最近更新 更多