В ios7 UITableViewCellAccessoryDetailDisclosureButton разделен на две разные кнопки аксессуаров

ios7 UITableViewCellAccessoryDetailDisclosureButtonios6 UITableViewCellAccessoryDetailDisclosureButton

Отметка представляет собой выбранную строку в это время, левое изображение - симулятор iOS7, а справа - симулятор iOS6.

Вызывает озабоченность UITableViewCellAccessoryDetailDisclosureButton in iOS7 has two parts, one part with right arrow accessory and other is the clickable "i" button rather than iOS6. Является ли это стандартным поведением, или я делаю что-то неправильно, если оно стандартное, то каким должен быть правильный способ обработки UITableViewCellAccessoryDetailDisclosureButton в iOS7?

Ответ 1

mahboudz правилен тем, что поведение теперь дифференцировано.

Если вы установили только элемент DetailButton, то в iOS7 вы увидите (i) в качестве кнопки вспомогательной аксессуара. Но в iOS6 вы ничего не увидите. Таким образом, отображение подробного представления с помощью accessoryButtonTappedForRowWithIndexPath с использованием SDK7.0 не работает на устройстве iOS6, поскольку не отображается аксессуар.

Использование обратной конфигурации имеет похожие проблемы, но вместо этого вы будете использовать didSelectRowAtIndexPath.

Обход, который я нашел, заключался в том, чтобы применить аналогичный подход к работе с extendedLayouts в iOS7.

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
    cell.accessoryType =  UITableViewCellAccessoryDetailButton;
} else {
    cell.accessoryType =  UITableViewCellAccessoryDetailDisclosureButton;
}

Итак, в iOS7 я использую только DetailButton, а в версиях до iOS7 я использую DetailDiscloureButton.

Ответ 2

Это правильное поведение. В iOS 7 вы показываете "кнопку подробностей" и "индикатор раскрытия информации" с помощью UITableViewCellAccessoryDetailDisclosureButton.

Если вам нужна только кнопка "i", вы должны использовать UITableViewCellAccessoryDetailButton, и если вам нужен только индикатор "раскрытия", вы должны использовать UITableViewCellAccessoryDisclosureIndicator.