2017-04-06 45 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

試過這個,這是有原因的。非常感謝! –