Вы делаете две вещи неправильно. Во-первых, как было сказано выше, вы переиздаваете кнопку, и в будущем может произойти сбой программы. Как правило, статические методы возвращают автоматически выпущенные объекты, поэтому вам не нужно выпускать их самостоятельно (если вы не сохранили их заранее).
Кроме того, поскольку вы повторно используете табличную ячейку, приведенный выше код добавит UIB-кнопку в ячейку несколько раз, что, вероятно, не является вашим желаемым поведением. Добавьте UIButton при инициализации ячейки таблицы. Кроме того, вы можете убедиться, что прямоугольник кнопки находится внутри ячейки таблицы для проверки работоспособности.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier] autorelease];
UIButton *cellButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[cellButton setFrame:CGRectMake(0.0f, 5.0f, tableView.frame.size.width-2, 44.0f)];
[cellButton setTitle:[aList objectAtIndex:indexPath.row] forState:UIControlStateNormal];
[cell addSubview:cellButton];
}
return cell;
}