iOS Assistive Touch用黑色补丁弄乱了屏幕

Nar*_*rya 5 iphone uitableview ios swift swift3

我有一个UITableView,每个UITableViewCell都有一张黑卡,如背景UIView.黑卡并非完全不透明,而是具有0.6的alpha值.当我向上和向下移动滚动时,一切看起来都很好,没问题.

当我在UITableView上移动辅助触摸时,会让我感到困惑.辅助触摸只会在移动的任何地方留下黑色斑块,黑色斑点会一直停留,直到我再次滚动我的UITableView.

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

额外:当我尝试截屏时,它会清除.

当我移动辅助触摸时会发生这种情况.

当我移动辅助触摸时会发生这种情况.

这是它应该看起来的样子.

这是它应该看起来的样子.

关于如何设置表格中单元格的背景颜色和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)
}
Run Code Online (Sandbox Code Playgroud)

Uda*_*idu 1

从代码中删除此行并检查它是否正常工作。

background.layer.backgroundColor = CGColor(colorSpace: CGColorSpaceCreateDeviceRGB(), components: [0.0, 0.0, 0.0, 0.6])
Run Code Online (Sandbox Code Playgroud)

也许发生的情况是你的背景层的 Alpha 和辅助触摸的 Alpha 重叠,并且操作系统正在尝试重新计算视图的颜色,并且它弄乱了视图的颜色。因此,请尝试使用以下代码将颜色和 alpha 赋予视图而不是视图的图层。

 self.background.backgroundColor = UIColor.black
 self.background.alpha = 0.6
Run Code Online (Sandbox Code Playgroud)