Учитывая возраст, я уверен, что вы, вероятно, уже разобрали это, но для вас или кого-либо еще это связано с тем, как iOS кеширует и повторно использует ячейки табличного представления.
Как вы 'вы правильно сделали в коде, вы использовали
dequeueReusableCellWithIdentifier:CellIdentifier
Это очень важно для производительности, но когда он использует ячейку, он также будет повторно использовать свойства.Таким образом, в ячейке, в которой вы отключили свои кнопки, когда они выходят из поля зрения, а затем возвращаются в поле зрения, iOS повторно использует одну из ячеек, которая не используется, и для которых, скорее всего, не отключены кнопки,следовательно, они возвращаются кликабельными.
Теоретически (как и проблема, с которой я сталкиваюсь), вы также должны отключить некоторые кнопки в других ячейках, когда ячейка отключенных кнопок станет невидимой, поскольку она будет использоваться повторно.
Вы можете исправить это, сохранив, какие кнопки следует отключить в индексе.Если вы используете, скажем, NSArray для своих данных таблиц, которые содержат объекты NSDictionary, вы можете добавить 2 новых ключа в этот словарь, один для состояния каждой из ваших 2 кнопок на ячейку.В этом вы можете просто хранить логическое значение (NSNumber), указывающее, должно ли оно быть отключено или нет.Затем в свой метод cellForRowAtIndexpath добавьте следующий
upVote.enabled = [aTrip objectForKey:@"upVoteEnabled"].boolValue;
downVote.enabled = [aTrip objectForKey:@"downVoteEnabled"].boolValue;
Затем, при каждом нажатии кнопки, убедитесь, что вы обновляете эти клавиши в словаре соответствующим образом.Затем вы ДОЛЖНЫ отключить кнопки только для тех ячеек, которые в этом нуждаются:)
Надеюсь, это поможет вообще.