【问题标题】:Scrolling a tableview inside a popover creates an artifact在弹出框内滚动 tableview 会创建一个工件
【发布时间】:2012-06-14 01:48:31
【问题描述】:

如果您查看标题为“地址”的按钮/标签,您会注意到角落里有一点白色。只有当用户开始滚动位于搜索栏下方的 tableView 时,才会出现这种白色斑点。

我只能猜测模态边框会在滚动时杀死所有透明胶片。

【问题讨论】:

  • 如果你已经在 XIB 中定义了你的用户界面,你能否缩小 table view 的高度,使 table view 的顶部边缘只接触底部边缘搜索栏?
  • 我在我的界面中也看到了这一点。不过不知道如何解决。
  • 我尝试将所有视图向下移动并将某些属性应用于所有视图,我在与 David 下面的对话中更深入地谈到了这一点,这就是我在拖动表i.imgur.com/4sLkP.png Perlexing

标签: ios uinavigationcontroller uipopovercontroller popover


【解决方案1】:

这是一个关于滚动视图的 iOS 问题,在很多地方都可以看到 - 除了为 tableview 减少或创建一些偏移之外,没有其他解决方案。

【讨论】:

    【解决方案2】:

    这个伪影可能是由多种不同的事情造成的。当看到这些东西时,我首先要检查的是所有与该区域重叠的 UIView(以及子视图)

    A.具有 alpha 值为 0 的背景颜色

    B.在 Interface Builder 中关闭“Cear Graphics Context”(或代码中的相应标志)

    【讨论】:

    • 我不清楚使背景颜色的 alpha 为零。您的意思是将视图的 alpha 设置为零吗?我不认为这就是你的意思,因为这会使视图完全透明。
    • - (void)makeBackgroundWhite:(UIView *)view { view.backgroundColor = [UIColor colorWithRed:1.0f green:1.0f blue:1.0f alpha:1.0f]; for(UIView *subview in view.subviews) { if(subview.subviews.count) { [self makeBackgroundWhite:subview]; } } }
    • 我做了一个递归函数,将控制器中的所有 uiviews 设置为 [UIColor colorWithRed:1.0f green:1.0f blue:1.0f alpha:1.0f];但不幸的是它没有工作。
    • 我在您的 makeBackgroundWhite 函数中看到您将 alpha 设置为 1.0。它应该是 0,所以它是透明的:你不想要背景颜色(但显然你不想将 UIView.Alpha 设置为 0,否则一切都将不可见。)
    • - (void)makeBackgroundWhite:(UIView *)view { view.backgroundColor = [UIColor colorWithRed:1.0f green:1.0f blue:1.0f alpha:0.0f]; view.opaque = 否; view.clearsContextBeforeDrawing = 否; for(UIView *subview in view.subviews) { if(subview.subviews.count) { [self makeBackgroundWhite:subview]; } } }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-23
    • 2014-02-26
    • 2017-11-25
    相关资源
    最近更新 更多