iOS 8 中的 UIPopoverController 错误的 UITextField 高度
Posted
技术标签:
【中文标题】iOS 8 中的 UIPopoverController 错误的 UITextField 高度【英文标题】:UIPopoverController wrong UITextField height in iOS 8 【发布时间】:2014-11-18 09:32:28 【问题描述】:在我的应用程序中,我使用带有嵌入式 UINaviagtionController
的 UIPopoverController
来显示单行 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 高度的主要内容,如果未能解决你的问题,请参考以下文章
使用 IBAction UIViewController 弹出 UIViewController