Путь «предпочтительный фокус» работает концептуально является то, что есть «цепь» из объекты, начиная с окна вашего приложения, спускаются через контроллеры и представления, пока цепочка не закончится с фокусным видом. Этот взгляд в конце - это то, что будет сфокусировано, когда ваше приложение запустится, или если фокус нужно сбросить (например, если текущее фокусное изображение будет удалено из иерархии представлений, UIKit нужно будет выбрать другое представление, чтобы стать сфокусированным) , Метод preferredFocusedView
- это то, как вы определяете цепочку.
Например, UIWindow
реализует preferredFocusedView
, чтобы вернуть предпочтительный сфокусированный вид rootViewController
. В реферате, т делает что-то вроде этого:
- (UIView *)preferredFocusedView {
return [self.rootViewController preferredFocusedView];
}
UIViewController
реализует preferredFocusedView
вернуть его view
собственность. UIView
просто возвращается сам.
Однако UICollectionView
реализует preferredFocusedView
по-разному: в простейшем случае он возвращает первую ячейку. Так что часть того, что вы хотите, уже сделано для вас. Если фокус не перемещается в первую ячейку вашей коллекции, то проблема в цепочке выше.
Если вид коллекции вашего взгляда контроллер не view
свойства контроллера представления, то вам необходимо направить фокус цепь в коллекции себе:
// in your view controller:
- (UIView *)preferredFocusedView {
return myCollectionView;
}
Оттуда вид коллекции направьте цепь в конкретную ячейку.
Теперь мы говорим. Интересно, почему Apple никогда не нанимает таких людей, как вы, чтобы написать свою документацию. Вместо этого они пишут людей, которые ненавидят писать. ИДЕАЛЬНО! БЛАГОДАРЯ! – SpaceDog
Если вы извлекаете данные из некоторого сервиса, не забудьте написать [self setNeedsFocusUpdate]; после команды reloadData/reloadSection. – NaXir
Любое руководство по программной настройке, какая ячейка сосредоточена в виде коллекции? – vtcajones