【问题标题】:iOS7 UITableViewCell background transparancy becomes opaque after a short pauseiOS 7 UITableViewCell 背景透明度在短暂暂停后变得不透明
【发布时间】:2014-11-21 16:41:37
【问题描述】:

我有一个 UITableView,它以模态方式呈现在视图上。表格视图中的一个单元格是故意透明的,以便下面的视图可见。问题是 IOS 7.1 单元开始时是透明的,然后立即变得不透明。在 iOS 8 下,透明单元格技术完美运行。

Qn。有没有人看到这个并想出一个有效的解决方法?

我尝试过的事情

  • 调整 cell.backgroundColor
  • 调整 cell.backgroundView
  • 调整tableView.backgroundColor
  • 调整tableView.backgroundView

  • 设置 tableView.opaque = YES;

  • 在 tableView:cellForRowAtIndexPath 中进行调整:

  • 在 tableView:willDisplayCell:forRowAtIndexPath: 中进行调整:

  • 使用全透明胶片

  • 使用部分透明胶片
  • 使用透明图片

  • [[UITableViewCell 外观] setBackgroundColor:[UIColor clearColor]];

基本上,只要将任何透明度引入背景,它就会改变(稍稍停顿后变为不透明)。

要在 iOS7 下重新迭代,透明度非常短暂(不到 1/2 秒)然后变成不透明。

这是效果的vimeo:Link

【问题讨论】:

    标签: uitableview ios7 transparency


    【解决方案1】:

    与其关注 tableview 及其单元格,不如查看呈现(底部)视图控制器。我相信(尽管目前我找不到它的正式文档)当您对一个视图控制器进行标准模态演示时,演示视图控制器的视图会在演示后从视图层次结构中删除。使用一个简单的测试应用程序,调用呈现视图控制器的 -viewWillDisappear: 并记录关键窗口的 -recursiveDescription 显示呈现视图控制器的视图已被删除。

    但是,如果您使用自定义转换,呈现视图控制器的视图将保持在原位(大概是为了允许这种透明效果)。

    编辑:我整理了一个快速示例应用程序(此处:https://github.com/sjc/ViewControllerTransitionExample),以 1)说明标准和自定义模式表示之间的行为差​​异,以及 2)展示如何构建基本 UINavigationController 子类解决这个问题(该技术通常只应用于直接的 UIViewController 子类)。

    但是...虽然这可以用来解决这种情况下的问题,但它不能回答“这里发生了什么?”问题,因为该示例并未完全重现您所看到的内容:呈现视图控制器在 iOS 7 和 8 上都消失了,而不仅仅是在 7 上,如原始问题中所述。哦,好吧。

    【讨论】:

    • 我已经将您的自定义过渡导航控制器插入到我的应用程序中,并且可以正常工作!我不知道为什么您的示例“正常”转换对于 iOS7 和 iOS8 都失败了。但是你解决了我的问题。非常感谢。
    【解决方案2】:

    尝试从 AppDelegate

    中的 外观 系统更改为表格单元格
    [[UITableViewCell appearance] setBackgroundColor:[UIColor clearColor]];
    

    【讨论】:

    • 感谢您的回答。我现在尝试了这个,它没有任何区别。我将用已经尝试过的事实来更新问题。
    • 嗨,我创建了一个非常基本的示例youtu.be/3RbdyGYZcvI,请确认这是您需要的。表格视图有三个单元格,第一个单元格是透明的。
    • 是的 - 但请参阅@dasdom 答案 - 它需要在 iOS7 和 iOS8 下工作
    • 对不起,我忘了上传IOS7视频youtu.be/TAxHtbM8LAA btw:我遇到了你的问题,是因为单元格高度太大
    【解决方案3】:

    这在 iOS 7 上不起作用,因为模态视图总是不透明的。在 iOS 8 上,它们可以是透明的。 你将不得不在 iOS 7 上找到另一个解决方案。

    这似乎工作了 1/2 秒,因为模态视图在转换期间不是不透明的。

    【讨论】:

    • 有助于了解 - “模态视图在过渡期间不是不透明的。”
    猜你喜欢
    • 2014-02-21
    • 2011-10-24
    • 2013-06-09
    • 1970-01-01
    • 2012-12-01
    • 2011-12-15
    • 2018-08-24
    • 2015-06-15
    相关资源
    最近更新 更多