2017-04-06 4 views
5

Ich habe eine UITableView mit jeder UITableViewCell mit einer schwarzen Karte wie Hintergrund UIView drin. Die schwarzen Karten sind nicht vollständig undurchsichtig, sondern haben ein Alpha von 0,6. Alles sieht gut aus, wenn ich nach oben und unten scrolle, keine Probleme.iOS Assistive Touch vermasselt Bildschirm mit schwarzen Flecken

Was vermasselt es, wenn ich die Assistive Touch auf der UITableView bewegen. Die Assistive Touch lässt einfach schwarze Flecken umher, wo auch immer sie bewegt wurden, und die schwarzen Flecken bleiben, bis ich wieder in meiner UITableView blättere.

Hat jemand anderes schon einmal auf ein solches Problem gestoßen? Gibt es irgendwelche Arbeiten um/hack um das zu vermeiden?

Extra: Wenn ich versuche, einen Screenshot zu machen, wird es gelöscht.

Dies passiert, wenn ich den Assistive Touch umherbewege.

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

Dies ist, wie es aussehen soll.

This is how it is supposed to look.

-Code-Schnipsel, wie ich die Hintergrundfarbe und Alpha für die Zellen in der Tabelle an Einstellung.

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

Versuchen Sie, Ihre Ansicht/tableView im Interface Builder auszuwählen. Stellen Sie dann im Attributinspektor sicher, dass "Drawing" Opaque NICHT ausgewählt ist und "Clear Graphics Context" ausgewählt ist. – Pochi

+0

Probieren Sie dieses @Chiquis. Es hat das Problem nicht behoben. –

+0

Ist auch die "Basis" -Ansicht Ihres Viewcontrollers transparent ? Versuchen Sie, diese Ansicht auf eine andere Farbe zu setzen.Wenn Sie einen UITableViewController verwenden, versuchen Sie, die Grundfarbe der Tabelle auf etwas zu setzen.Es scheint, als ob die assistive Touch-Sache irgendwie mit dem Rendering zu tun hat, aber ich habe nur etwas Vertrautes gesehen Das Anwendungsfenster war transparent und ich konnte das Dashboard zwischen den Übergängen sehen. – Pochi

Antwort

1

Entfernen Sie diese Zeile aus Ihrem Code und prüfen Sie, ob sie funktioniert.

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

Vielleicht, was passiert ist Ihr Alpha und Alpha von assis Berührung des Hintergrundschicht überlappen und os versuchen Farbe Ihrer Ansicht neu zu berechnen, und es ist die Farbe der Ansicht durcheinander. Versuchen Sie also, die Farbe und das Alpha der Ansicht anstatt einer Ebene der Ansicht zu geben, indem Sie den folgenden Code verwenden.

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

Versucht dies und das funktioniert aus irgendeinem Grund. Danke vielmals! –

Verwandte Themen