我有一个UITableView,它在视图上以模态方式呈现。表格视图中的一个单元格是有意透明的,因此下面的视图是可见的。问题是,IOS 7.1单元格开始透明,然后立即变得不透明。在iOS 8下,透明单元技术非常有效。
QN。有没有人看过这个并提出有效的解决方法?
我尝试过的事情
调整tableView.backgroundView
设置tableView.opaque = YES;
在tableView中进行调整:cellForRowAtIndexPath:
在tableView中进行调整:willDisplayCell:forRowAtIndexPath:
使用完整透明胶片
使用透明图像
[[UITableViewCell外观] setBackgroundColor:[UIColor clearColor]];
基本上,只要在背景中引入任何透明度,它就会发生变化(稍微停顿后变为不透明)。
要在iOS7下重新迭代,透明度非常短暂(不到1/2秒),然后变得不透明。
以下是效果的vimeo:Link
答案 0 :(得分:1)
尝试从 AppDelegate
中的外观系统更改为表格单元格[[UITableViewCell appearance] setBackgroundColor:[UIColor clearColor]];
答案 1 :(得分:1)
这在iOS 7上不起作用,因为模态视图总是不透明的。在iOS 8上,它们可以是透明的。 您将不得不在iOS 7上找到另一种解决方案。
这似乎工作1/2秒是因为模态视图在转换过程中不透明。
答案 2 :(得分:1)
不要专注于tableview及其单元格,而是查看呈现(底部)视图控制器。我相信(虽然我目前无法正式记录),当您对一个视图控制器进行标准模态演示时,会在演示后从视图层次结构中删除呈现视图控制器的视图。使用一个简单的测试应用程序,调用呈现视图控制器的-viewWillDisappear:并记录关键窗口的-recursiveDescription,显示呈现视图控制器的视图已被删除。
但是,如果您使用自定义过渡,则会保留呈现视图控制器的视图(可能是为了实现这种透明效果)。
编辑:我已经整理了一个快速示例应用程序(此处:https://github.com/sjc/ViewControllerTransitionExample)1)说明标准和自定义模式演示之间的行为差异,以及2)显示基本UINavigationController子类的方式可以构建来解决这个问题(该技术通常只适用于直接的UIViewController子类)。
然而......虽然这可以用来解决这种情况下的问题,但它并没有回答这里发生了什么?'问题,因为该示例并未准确再现您所看到的内容:呈现视图控制器在iOS 7和8上消失,而不是仅在7上消失,如原始问题中所述。哦,好吧。