iOS 8 中的 UIPopoverController 错误的 UITextField 高度

Posted

技术标签:

【中文标题】iOS 8 中的 UIPopoverController 错误的 UITextField 高度【英文标题】:UIPopoverController wrong UITextField height in iOS 8 【发布时间】:2014-11-18 09:32:28 【问题描述】:

在我的应用程序中,我使用带有嵌入式 UINaviagtionControllerUIPopoverController 来显示单行 UITextField 以输入数字。这种输入适用于 ios 7.1。由于 iOS 8.0 UITextField 的大小是错误的。我尝试更改 AutoresizingMask、Frame、EdgesForExtendedLayout,...但没有任何效果。

正如您在下面的屏幕截图中看到的那样,有一种奇怪的行为。

提供 Xamarin.iOS 的示例项目:http://www.danflash.com/files/dev/PopoverTest.zip

【问题讨论】:

使用自动布局约束怎么样? 我对自动布局约束不是很熟悉。我所有的布局都是用代码编写的,而不是使用故事板设计器。 used helper 类在不同的应用程序中被广泛使用,并且被使用了数百次。我想通过更改为自动布局约束来避免重大影响。您是否有示例如何更改我当前的代码来做到这一点? 您可以使用来自代码的约束来构建布局,不一定来自 IB。我认为您将来无法避免自动布局,这就是 Apple 希望您这样做的方式。 看看 WWDC 2014 上展示的这个漂亮的示例框架:github.com/zwaldowski/AAPLAdvancedCollectionView 【参考方案1】:

我找到了问题。我必须在方法中设置contentViewController.EdgesForExtendedLayout = UIRectEdge.None;

public static PopoverInputController GetPopoverController(...)

Apple 似乎对 UI 进行了更多关于布局方面的更改。

【讨论】:

以上是关于iOS 8 中的 UIPopoverController 错误的 UITextField 高度的主要内容,如果未能解决你的问题,请参考以下文章

iOS 8 - Popover 中的模态

使用 IBAction UIViewController 弹出 UIViewController

iOS 8中的popover全屏

Swift - iOS 8 中的 UIPopoverController

iOS 8 中的 CLlocationManager 问题

iOS 8 中的 didEnterRegion - 区域监控