Sto cambiando la larghezza di un UITableViewCell in modo che la cella sia più piccola, ma l'utente può ancora scorrere lungo i bordi della tableview.UITableViewCell: angoli arrotondati e ombreggiatura
override func layoutSubviews() {
// Set the width of the cell
self.bounds = CGRectMake(self.bounds.origin.x, self.bounds.origin.y, self.bounds.size.width - 40, self.bounds.size.height)
super.layoutSubviews()
}
Poi ho arrotondare gli angoli:
cell.layer.cornerRadius = 8
cell.layer.masksToBounds = true
Tutto bene finora. Il problema si verifica con l'ombra. I limiti sono mascherati, quindi l'ombra ovviamente non verrà visualizzata. Ho cercato altre risposte ma non riesco a capire come arrotondare gli angoli lungo i limiti e mostrare l'ombra.
cell.layer.shadowOffset = CGSizeMake(0, 0)
cell.layer.shadowColor = UIColor.blackColor().CGColor
cell.layer.shadowOpacity = 0.23
cell.layer.shadowRadius = 4
Quindi la mia domanda - come faccio a ridurre la larghezza, arrotondare gli angoli, e aggiungi un'ombra ad un UITableViewCell allo stesso tempo?
Update: Cercando la risposta di R Moyer
Avete bisogno di 'masksToBounds' abilitato? Potresti essere in grado di aggiustare i vincoli semplicemente non usando quello. Altrimenti, cosa succede se si rende chiaro lo sfondo della cella e si aggiunge un altro 'UIView' all'interno della cella che contiene tutte le viste della cella. Quindi puoi rendere la vista del contenitore più piccola con angoli arrotondati e un'ombra, senza doversi preoccupare che l'ombra venga ritagliata. – dylansturg