我已经进行了子类化并使用UIPopoverBackgroundView为我的UIPopoverControllers制作自定义外观。到目前为止,一切似乎都很好,弹出画面很好,看起来像我期待的那样 问题是,当我的弹出窗口保持打开状态一段时间没有活动时,边界通常会突然出错。这种情况似乎只发生在popover包含一个大于popover的scrollview / tableview(即它是可滚动的)时。它也不会每次都发生,但如果确实发生了,它会在不到一分钟的时间内发生。如果我截取屏幕截图,则问题不明显(尽管屏幕上清晰可见),所以不幸的是我无法提供任何问题的图片。
有没有人知道在几秒钟不活动后如何正确绘制边框以及如何解决问题的原因?如果有必要,我可以提供代码片段,虽然我确信一切都是正确的(相当于我在网上看过的很多例子)。我也不会在不活动期间的任何时候调整popover的大小(我在最初显示时调整大小以适应最大尺寸的内容)。
由于我无法通过屏幕截图来演示此问题,因此我能做的最好的就是描述它。看起来好像某些区域的边框绘制的尺寸错误(因为,右边缘的一部分是在弹出框的中间绘制的;不是边框本身太宽,而是边界区域)应该接近是错的)。沿着实际边缘的区域仍然存在,但是缺少它的图层效果(我使用borderView和圆角层效果给它一个漂亮的圆形白边,模仿与默认背景视图相同的外观,只是一个不同的颜色)。但是,删除图层效果并不能解决问题。有时它只是右边缘的一部分被错误地绘制,有时底部边缘的一部分也受到影响。我似乎无法找到关于何时或如何发生这种情况的相关性(虽然它很常见),也没有找到影响哪个边缘(尽管我从未见过它会影响顶部或左边缘)。
答案 0 :(得分:1)
它只发生在模拟器中还是发生在真实设备上?
这似乎只有在popover包含一个大于popover的scrollview / tableview时才会发生(即它是可滚动的)
在这种情况下,您是否调整了scrollview / tableview的大小?尝试在UIPopView中添加一个UIView作为容器。