UIButton in UITableViewCell Nicht in iOS7
Ich habe einen UIButton in einer UITableViewCell wurde korrekt arbeitet seit iOS4, nun seit dem iOS7 update funktioniert Sie nicht mehr. Es ist im Grunde ein Bild von einer leeren box. Wenn der Benutzer auf das Bild klickt (UIButton) das Bild ändert sich ein markiertes Feld. Ich bin NICHT mit einem XIB. Jemand irgendwelche Vorschläge haben? Vielen Dank im Voraus.
(Ich habe bereits versucht contentView.userInteractionEnabled = NO;
und [cell bringSubviewToFront:button]
aber das hat nicht funktioniert)
Hier einige relevante code:
- (UITableViewCell *)taskCell:(NSIndexPath *)indexPath table:(UITableView *)localTableView managed:(NSManagedObject *)managedTask dateFormat:(NSDateFormatter *)localDateFormatter{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [localTableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
//Checkbox
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(-4.0f, -3.0f, 48.0f, 48.0f)];
button.tag=kCellButtonViewTag;
button.adjustsImageWhenHighlighted=NO;
[button setImage:[UIImage imageNamed:@"uncheckedPriorityNone.png"] forState:UIControlStateNormal];
[button addTarget:self action:@selector(toggleCheckedMode:) forControlEvents:UIControlEventTouchUpInside];
[cell.contentView addSubview:button];
[button release];
}
}
- (IBAction)toggleCheckedMode:(id)sender{
NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext];
UITableViewCell *clickedCell = (UITableViewCell *)[[sender superview] superview];
NSIndexPath *indexPath = [self.tableView indexPathForCell:clickedCell];
Task *localTask = [self.fetchedResultsController objectAtIndexPath:indexPath];
UIButton *button = sender;
[button setImage:[UIImage imageNamed:@"checkedGray.png"] forState:UIControlStateNormal];
}
- mögliche Duplikate von Wie Sie wissen, die UITableview Zeile Nummer
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie, den Blick auf die Zelle selbst, nicht auf die contentView.
So
Statt
Ich Probleme mit diesem, und IB nicht scheinen, können Sie Sie Aussicht außerhalb der contentview mehr. Die Art, wie ich behandelt es, während immer noch mit IB für layout und was nicht, ist wie diese:
Dies ist Ihr problem. Die view-Hierarchie von Zellen, die sich verändert hat in iOS7, und haben Sie dabei ertappt worden, durch die Abhängigkeit von diesem. Meine Lösung hier arbeitet immer noch in iOS7, ich schlage vor, Sie verwenden, die anstelle von tags oder view-Hierarchie-navigation.
Fand ich das gleiche problem. Die sauberste Lösung konnte ich kam mit dieser Unterstützung möglich für pre-iOS7 und iOS7 war mit dem editingAccessoryView Eigenschaft von UITableViewCell als auch auf die benutzerdefinierten UIButton.
In meinem Fall bin ich mit einer Spitze, aber das sollte keinen Unterschied machen. Also in deinem Fall wäre:
Der Punkt hier ist, dass eine Handlung noch Hinzugefügt, für die benutzerdefinierte UIButton, aber auf iOS7, eine andere Schaltfläche erstellt, mit der gleichen Größe, den editingAccessoryView und versteckt. Das sollte der trick.
Erinnern zu setEditing:JA in Ihrem UITableView.
Wenn Sie möchten, setEditing:JA/NEIN in Ihrem UITableView. Sie haben unten ein, weil die Hierarchie der tableview wird geändert auf ios7.