UIPooverBackgroundView 边框收缩
Posted
技术标签:
【中文标题】UIPooverBackgroundView 边框收缩【英文标题】:UIPopoverBackgroundView border shrink 【发布时间】:2013-07-09 14:15:01 【问题描述】:我已经子类化并且正在使用 UIPopoverBackgroundView 来为我的 UIPopoverControllers 制作自定义外观。到目前为止,一切似乎都很好,弹出框画得很好,看起来像我期望的那样。 问题是,当我的弹出框打开一段时间没有活动时,边框经常会突然画错。这似乎只发生在弹出框包含大于弹出框的滚动视图/表格视图(即它是可滚动的)时。它也不会每次都发生,但如果确实发生,它会在不活动的不到一分钟内发生。如果我截取屏幕截图,则该问题不可见(尽管它在屏幕上清晰可见),因此很遗憾我无法提供该问题的任何图像。
有谁知道为什么在几秒钟不活动后会错误地绘制边框以及如何解决这个问题?如有必要,我可以提供代码的 sn-ps,尽管我相当确定一切都是正确的(相当于我在网上看到的许多示例)。在不活动期间,我也不会随时调整弹出框的大小(我会在最初显示时调整大小以适应最大大小的内容)。
由于我无法截取屏幕截图来演示该问题,所以我能做的就是描述它。似乎某些区域的边框以错误的大小绘制(例如,右侧边缘的一部分被绘制在弹出框的中间;不是边框本身太宽,而是边框的区域应该是接壤是错误的)。沿实际边缘的区域仍然存在,但缺少它的图层效果(我有使用边框和圆角图层效果的 backgroundView 给它一个漂亮的圆角白色边缘,模拟与默认背景视图相同的外观,只是一个不同的颜色)。但是,删除图层效果并不能阻止该问题。有时只是右侧边缘的一部分绘制不正确,有时底部边缘的一部分也会受到影响。我似乎找不到任何相关性与何时或如何发生(尽管它很常见),也找不到影响哪个边缘(尽管我从未见过它影响顶部或左侧边缘)。
【问题讨论】:
添加了更多描述性细节,因为我无法截取问题的屏幕截图。 【参考方案1】:是只发生在模拟器上还是真机上?
这似乎只发生在弹出框包含大于弹出框的滚动视图/表格视图时(即它是可滚动的)
在这种情况下,您是否调整滚动视图/表格视图的大小?尝试在您的 UIPopView 中添加一个 UIView,该 UIView 将成为容器。
【讨论】:
这发生在设备上。不幸的是,我无法在模拟器上运行我的代码,我使用的一些库与它不兼容。我所有的弹出框都包含一个导航控制器,它的根视图又是一个 UIViewController 或 UITableViewController。无论哪种情况,我都没有明确设置视图的大小。我最初只设置了弹出框的大小,使其不会超过屏幕高度的 2/3 和宽度的 1/2。 我还尝试制作 UINavigationController 的根视图,该弹出框包含一个 UIViewController ,而 UIViewController 又包含我的表格视图。问题仍然存在。以上是关于UIPooverBackgroundView 边框收缩的主要内容,如果未能解决你的问题,请参考以下文章