2017-04-06 104 views
5

我有一个UITableView与每个UITableViewCell有一个像背景UIView黑卡。黑卡并非完全不透明,而是具有0.6的alpha。当我移动时,所有看起来都很好的向上和向下滚动,没有问题。iOS辅助触摸搞乱了黑色补丁屏幕

当我在UITableView上移动Assistive Touch时,会让它变得混乱。 Assistive Touch只是将黑色补丁留在所移动的任何位置,黑色补丁一直保留,直到我再次滚动我的UITableView。

有没有其他人遇到过这样的问题?是否有任何解决方法/黑客来避免这种情况?

额外:当我尝试截取屏幕截图时,它会清除。

这是当我移动辅助触摸时发生的情况。

This is what happens when I move the Assistive Touch around.

这是它应该是怎样的样子。

This is how it is supposed to look.

的代码片段,以我怎么设置背景颜色和alpha为表中的单元格。

override func awakeFromNib() { 
    super.awakeFromNib() 
    // Initialization code 
    self.selectionStyle = .none 
    self.backgroundColor = UIColor.clear 

    self.background.backgroundColor = UIColor.black 
    self.background.alpha = 0.6 

    background.layer.backgroundColor = CGColor(colorSpace: CGColorSpaceCreateDeviceRGB(), components: [0.0, 0.0, 0.0, 0.6]) 
    background.layer.masksToBounds = true 
    background.layer.shadowOffset = CGSize(width: -1, height: 1) 
    background.layer.shadowOpacity = 0.2 
    self.contentView.sendSubview(toBack: background) 
} 
+0

尝试在界面生成器中选择您的视图/ tableView。然后在属性检查器中确保没有选择“绘图”不透明,并且“选中了清除图形上下文” – Pochi

+0

刚刚试过这个@Chiquis,它并没有解决问题 –

+0

您的视图控制器的“基础”视图是否透明?尝试设置这个视图为不同的颜色,如果你使用的是UITableViewController,可以尝试将tableview的基色设置为某种东西,这似乎是辅助触摸事物以某种方式搞乱了渲染,但是我只看到了一些我熟悉的东西应用程序窗口是透明的,我可以在转换之间看到仪表板 – Pochi

回答

1

从你的代码中删除这行,并检查它是否工作。

background.layer.backgroundColor = CGColor(colorSpace: CGColorSpaceCreateDeviceRGB(), components: [0.0, 0.0, 0.0, 0.6]) 

可能发生的事情是你的背景层的α和辅助触摸的字母重叠和操作系统正试图重新计算视图的颜色和它搞乱视图的颜色。 因此,请尝试使用以下代码将视图的颜色和alpha代替视图的图层。

self.background.backgroundColor = UIColor.black 
self.background.alpha = 0.6 
+0

试过这个,这是有原因的。非常感谢! –