2016-04-13 9 views
0

Ich habe ein seltsames Problem mit dem Code auf meinen (statischen) Zellen. In mehreren Zellen habe ich eine UIButton. Wenn ich darauf klicke, ist alles in Ordnung, aber wenn ich auf den Bereich neben dem Knopf klicke (immer noch in der Zelle selbst), wird er grau (Farbe wenn Zelle ausgewählt) + der Knopf verschwindet auch!Schaltfläche in (statischer) Zelle verschwindet, wenn Sie auf die Zelle selbst anstelle der Schaltfläche klicken

Ich habe versucht, den Hintergrund der Zelle weiß, wenn sie mit dem folgenden Code gedrückt zu ändern:

override func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) { 
    let myBackView=UIView(frame:cell.frame) 
    myBackView.backgroundColor = UIColor.clearColor() 
    cell.selectedBackgroundView = myBackView 

} 

aber das Problem ist immer noch da. When the cell itself isn't pressed Dies ist, wenn die statische Zelle nicht When I pressed the cell (not the button) gedrückt wird Dies ist, wenn ich die Zelle gedrückt wird (die Taste nicht innerhalb der Zelle)

Antwort

1

Dies ist ein häufiges Problem, wenn UITableViewCells Auswahl findet Why do all backgrounds disappear on UITableViewCell select?

Wenn Sie beabsichtigen nicht, die Zelle, implementieren this delegate method ausgewählt werden:

- (NSIndexPath * _Nullable)tableView:(UITableView * _Nonnull)tableView willSelectRowAtIndexPath:(NSIndexPath * _Nonnull)indexPath 

und zurück nil wenn indexPath das eine Ihrer Zelle ist. Dies wird die Auswahl für diese Zelle deaktivieren.

Wenn keine Ihrer Zellen ausgewählt werden soll, ist es noch einfacher, setzen Sie einfach UITableView's allowsSelection auf NO (dies kann auch in Interface Builder erfolgen).

+0

Hallo, ich brauche zwar einige Zellen, die ausgewählt werden müssen. Ich habe versucht den "WillenSelectRowAtIndexPath", aber es hat mein Problem nicht gelöst (kann nicht die Zellen auswählen, die funktionieren müssen, und die Schaltflächen immer noch verschwinden). Liegt es daran, dass ich 7 statische Zellen verwende? – SoundShock

+0

Haben Sie sich den ersten Link angesehen, den ich gepostet habe? (https://stackoverflow.com/questions/7053340/why-do-all-backgrounds-disappear-on-uitableviewcell-select) Ich glaube nicht, dass die Schaltflächen verschwinden, ihr Hintergrund wird transparent und wie Ihr Bild und Text weiß sind Du siehst nichts mehr. –

+0

Hey, habe eine Lösung gefunden, die für mich funktioniert: Ich verbinde die statische Zelle über IB mit dem Code und dann einfach 'mailCell.selectionStyle = UITableViewCellSelectionStyle.None' Das hielt meinen Knopf an, aber die Zelle hat das Ganze nicht gemacht verschwinden handeln. – SoundShock