В моей cellForRowAtIndex я инициализировать кнопку (она получает, показанную в каждой клетке в Tableview):Кнопка предполагается изменить изображение после щелчка, но (в случайном порядке) изменения изображения других кнопок слишком
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button addTarget:self
action:@selector(customActionPressed:)
forControlEvents:UIControlEventTouchDown];
[button setTitle:@"" forState:UIControlStateNormal];
button.frame = CGRectMake(0.0f,cell.frame.size.height -15, 160.0f, 15.0f);
UIImage *buttonImage = [UIImage imageNamed:@"Image1.png"];
button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
[button.titleLabel setFont:[UIFont fontWithName:@"Arial" size:13.0]];
button.contentEdgeInsets = UIEdgeInsetsMake(1, 60, 0, 0);
[button setBackgroundImage:buttonImage forState:UIControlStateNormal];
[cell addSubview:button];
button.autoresizingMask = UIViewAutoresizingFlexibleTopMargin;
Он имеет нормальное изображение, и если пользователь нажимает на кнопку, изображение меняется. Также я получаю содержимое кнопки button.title из XML. Поэтому я говорю, чтобы получить правильное название из Интернета. Это работает отлично, но иногда (не все время), а также случайным образом он меняет кнопку из следующей ячейки или ячейку на три строки вниз. Я не знаю, почему и ничего не мог найти во время работы с breakpoints/debugger.
-(void)customActionPressed :(id)sender
{
UITableViewCell *owningCell = (UITableViewCell*)[sender superview];
NSIndexPath *pathToCell = [self.tableView indexPathForCell:owningCell];
UIImage *buttonImage = [UIImage imageNamed:@"image2.png"];
[self doXMLParsing];
[sender setBackgroundImage:buttonImage forState:UIControlStateNormal];
NSString *TableText = [[NSString alloc] initWithFormat:@"%@", [[tabelle objectAtIndex:pathToCell.row] pressed1]];
[sender setTitle:TableText forState:UIControlStateNormal];
((UIButton *)sender).enabled = NO;
}
Так что, возможно, кто-то может увидеть, где я ошибся. Если вам нужно больше кода, просто скажите это.
Не могли бы вы объяснить вторую часть дальше? Я думаю, что я действительно не понимаю. – Blade
, когда вы создаете пользовательский элемент, вы можете получить к нему доступ [cell.nameofyourbutton setImage: [UIIMAGE imageNamed: @ ""]]; если у вас есть несколько элементов в вашей ячейке, лучше иметь его обычай, так как легче вносить изменения и обращаться к нему таким образом. –
О, ладно, да, чем я понял. Но даже если это appdelegate, он не знает, что делать с «cell.mybutton». – Blade