UICollectionViewDelegate
Наследование
Не применимый
Оператор импорта
Swift
import UIKit
Objective C
@import UIKit;
Доступность
Доступный в iOS 6.0 и позже.
UICollectionViewDelegate
протокол определяет методы, позволяющие Вам управлять выбором и выделением элементов в представлении набора и выполнять действия с теми элементами. Методы этого протокола являются все дополнительными.
Много методов этого протокола берут NSIndexPath
объекты как параметры. Для поддержки представлений набора UIKit объявляет категорию на NSIndexPath
это позволяет Вам получить представленный индекс элемента и индекс раздела, и создать новые индексные объекты контуров из индексных значений и элемента. Поскольку элементы расположены в их разделах, обычно необходимо оценивать индекс раздела, прежде чем можно будет идентифицировать элемент его индексом.
При конфигурировании объекта представления набора присвойте объект делегата delegate
свойство. Для получения дополнительной информации посмотрите Ссылку класса UICollectionView.
-
Если указанный элемент должен быть выбран, спрашивает делегат.
Объявление
Swift
optional func collectionView(_
collectionView
: UICollectionView, shouldSelectItemAtIndexPathindexPath
: NSIndexPath) -> BoolObjective C
- (BOOL)collectionView:(UICollectionView *)
collectionView
shouldSelectItemAtIndexPath:(NSIndexPath *)indexPath
Параметры
collectionView
Объект представления набора, спрашивающий, должен ли измениться выбор.
indexPath
Индексный путь ячейки, которая будет выбрана.
Возвращаемое значение
YES
true
если элемент должен быть выбран илиNO
false
если это не должно.Обсуждение
Когда пользователь пытается выбрать элемент в представлении набора, представление набора вызывает этот метод. Когда Вы программно устанавливаете выбор, это не вызывает этот метод.
Если Вы не реализуете этот метод, возвращаемое значение по умолчанию
YES
true
.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 6.0 и позже.
-
Говорит делегату, что был выбран элемент в указанном индексном пути.
Объявление
Swift
optional func collectionView(_
collectionView
: UICollectionView, didSelectItemAtIndexPathindexPath
: NSIndexPath)Objective C
- (void)collectionView:(UICollectionView *)
collectionView
didSelectItemAtIndexPath:(NSIndexPath *)indexPath
Параметры
collectionView
Объект представления набора, уведомляющий Вас относительно изменения выбора.
indexPath
Индексный путь выбранной ячейки.
Обсуждение
Когда пользователь успешно выбирает элемент в представлении набора, представление набора вызывает этот метод. Когда Вы программно устанавливаете выбор, это не вызывает этот метод.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 6.0 и позже.
-
Если указанный элемент должен быть невыбранным, спрашивает делегат.
Объявление
Swift
optional func collectionView(_
collectionView
: UICollectionView, shouldDeselectItemAtIndexPathindexPath
: NSIndexPath) -> BoolObjective C
- (BOOL)collectionView:(UICollectionView *)
collectionView
shouldDeselectItemAtIndexPath:(NSIndexPath *)indexPath
Параметры
collectionView
Объект представления набора, спрашивающий, должен ли измениться выбор.
indexPath
Индексный путь ячейки, которая будет невыбранной.
Возвращаемое значение
YES
true
если элемент должен быть невыбранным илиNO
false
если это не должно.Обсуждение
Когда пользователь пытается отменить выбор элемента в представлении набора, представление набора вызывает этот метод. Когда Вы программно отменяете выбор элементов, это не вызывает этот метод.
Если Вы не реализуете этот метод, возвращаемое значение по умолчанию
YES
true
.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 6.0 и позже.
-
Говорит делегату, что был невыбранным элемент в указанном пути.
Объявление
Swift
optional func collectionView(_
collectionView
: UICollectionView, didDeselectItemAtIndexPathindexPath
: NSIndexPath)Objective C
- (void)collectionView:(UICollectionView *)
collectionView
didDeselectItemAtIndexPath:(NSIndexPath *)indexPath
Параметры
collectionView
Объект представления набора, уведомляющий Вас относительно изменения выбора.
indexPath
Индексный путь ячейки, которая была невыбранной.
Обсуждение
Когда пользователь успешно отменяет выбор элемента в представлении набора, представление набора вызывает этот метод. Когда Вы программно отменяете выбор элементов, это не вызывает этот метод.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 6.0 и позже.
-
collectionView (_: shouldHighlightItemAtIndexPath:) - collectionView:shouldHighlightItemAtIndexPath:
Если элемент должен быть выделен во время отслеживания, спрашивает делегат.
Объявление
Swift
optional func collectionView(_
collectionView
: UICollectionView, shouldHighlightItemAtIndexPathindexPath
: NSIndexPath) -> BoolObjective C
- (BOOL)collectionView:(UICollectionView *)
collectionView
shouldHighlightItemAtIndexPath:(NSIndexPath *)indexPath
Параметры
collectionView
Объект представления набора, спрашивающий об изменении выделения.
indexPath
Индексный путь ячейки, которая будет выделена.
Возвращаемое значение
YES
true
если элемент должен быть выделен илиNO
false
если это не должно.Обсуждение
Поскольку сенсорные события поступают, элементы выделений представления набора в ожидании пользователя, выбирающего их. Поскольку это обрабатывает те сенсорные события, представление набора вызывает этот метод для выяснения у делегата, если должна быть выделена данная ячейка. Если Вы программно устанавливаете выделение на ячейке, это вызывает этот метод только в ответ на взаимодействие с пользователем и не вызывает его.
Если Вы не реализуете этот метод, возвращаемое значение по умолчанию
YES
true
.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 6.0 и позже.
-
Говорит делегату, что был выделен элемент в указанном индексном пути.
Объявление
Swift
optional func collectionView(_
collectionView
: UICollectionView, didHighlightItemAtIndexPathindexPath
: NSIndexPath)Objective C
- (void)collectionView:(UICollectionView *)
collectionView
didHighlightItemAtIndexPath:(NSIndexPath *)indexPath
Параметры
collectionView
Объект представления набора, уведомляющий Вас относительно изменения выделения.
indexPath
Индексный путь выделенной ячейки.
Обсуждение
Если Вы программно устанавливаете выделение на ячейке, представление набора вызывает этот метод только в ответ на взаимодействие с пользователем и не вызывает его.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 6.0 и позже.
-
Говорит делегату, что выделение было удалено из элемента в указанном индексном пути.
Объявление
Swift
optional func collectionView(_
collectionView
: UICollectionView, didUnhighlightItemAtIndexPathindexPath
: NSIndexPath)Objective C
- (void)collectionView:(UICollectionView *)
collectionView
didUnhighlightItemAtIndexPath:(NSIndexPath *)indexPath
Параметры
collectionView
Объект представления набора, уведомляющий Вас относительно изменения выделения.
indexPath
Индексный путь ячейки, которой удалили ее выделение.
Обсуждение
Если Вы программно изменяете выделение на ячейке, представление набора вызывает этот метод только в ответ на взаимодействие с пользователем и не вызывает его.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 6.0 и позже.
-
collectionView (_: willDisplayCell:forItemAtIndexPath:) - collectionView:willDisplayCell:forItemAtIndexPath:
Говорит делегату, что указанная ячейка собирается быть выведенной на экран в представлении набора.
Объявление
Swift
optional func collectionView(_
collectionView
: UICollectionView, willDisplayCellcell
: UICollectionViewCell, forItemAtIndexPathindexPath
: NSIndexPath)Objective C
- (void)collectionView:(UICollectionView *)
collectionView
willDisplayCell:(UICollectionViewCell *)cell
forItemAtIndexPath:(NSIndexPath *)indexPath
Параметры
collectionView
Объект представления набора, добавляющий ячейку.
cell
Добавляемый объект ячейки.
indexPath
Индексный путь элемента данных, который представляет ячейка.
Обсуждение
Представление набора вызывает этот метод прежде, чем добавить ячейку к ее содержанию. Используйте этот метод для обнаружения дополнений ячейки, в противоположность контролю самой ячейки для наблюдения, когда это появится.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 8.0 и позже.
-
collectionView (_: willDisplaySupplementaryView:forElementKind:atIndexPath:) - collectionView:willDisplaySupplementaryView:forElementKind:atIndexPath:
Говорит делегату, что указанное дополнительное представление собирается быть выведенным на экран в представлении набора.
Объявление
Swift
optional func collectionView(_
collectionView
: UICollectionView, willDisplaySupplementaryViewview
: UICollectionReusableView, forElementKindelementKind
: String, atIndexPathindexPath
: NSIndexPath)Objective C
- (void)collectionView:(UICollectionView *)
collectionView
willDisplaySupplementaryView:(UICollectionReusableView *)view
forElementKind:(NSString *)elementKind
atIndexPath:(NSIndexPath *)indexPath
Параметры
collectionView
Объект представления набора, добавляющий дополнительное представление.
view
Добавляемое представление.
elementKind
Тип дополнительного представления. Эта строка определяется расположением, представляющим представление.
indexPath
Индексный путь элемента данных, который представляет дополнительное представление.
Обсуждение
Представление набора вызывает этот метод прежде, чем добавить дополнительное представление к его содержанию. Используйте этот метод для обнаружения дополнений представления, в противоположность контролю самого представления для наблюдения, когда это появится.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 8.0 и позже.
-
collectionView (_: didEndDisplayingCell:forItemAtIndexPath:) - collectionView:didEndDisplayingCell:forItemAtIndexPath:
Говорит делегату, что указанная ячейка была удалена из представления набора.
Объявление
Swift
optional func collectionView(_
collectionView
: UICollectionView, didEndDisplayingCellcell
: UICollectionViewCell, forItemAtIndexPathindexPath
: NSIndexPath)Objective C
- (void)collectionView:(UICollectionView *)
collectionView
didEndDisplayingCell:(UICollectionViewCell *)cell
forItemAtIndexPath:(NSIndexPath *)indexPath
Параметры
collectionView
Представление набора возражает, что удалил ячейку.
cell
Удаленный объект ячейки.
indexPath
Индексный путь элемента данных, что представлена ячейка.
Обсуждение
Используйте этот метод для обнаружения, когда ячейка удалена из представления набора, в противоположность контролю самого представления для наблюдения, когда это исчезает.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 6.0 и позже.
-
collectionView (_: didEndDisplayingSupplementaryView:forElementOfKind:atIndexPath:) - collectionView:didEndDisplayingSupplementaryView:forElementOfKind:atIndexPath:
Говорит делегату, что указанное дополнительное представление было удалено из представления набора.
Объявление
Swift
optional func collectionView(_
collectionView
: UICollectionView, didEndDisplayingSupplementaryViewview
: UICollectionReusableView, forElementOfKindelementKind
: String, atIndexPathindexPath
: NSIndexPath)Objective C
- (void)collectionView:(UICollectionView *)
collectionView
didEndDisplayingSupplementaryView:(UICollectionReusableView *)view
forElementOfKind:(NSString *)elementKind
atIndexPath:(NSIndexPath *)indexPath
Параметры
collectionView
Представление набора возражает, что удалил дополнительное представление.
view
Удаленное представление.
elementKind
Тип дополнительного представления. Эта строка определяется расположением, представляющим представление.
indexPath
Индексный путь элемента данных, что представлено дополнительное представление.
Обсуждение
Используйте этот метод для обнаружения, когда дополнительное представление удалено из представления набора, в противоположность контролю самого представления для наблюдения, когда это появляется или исчезает.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 6.0 и позже.
-
collectionView (_: transitionLayoutForOldLayout:newLayout:) - collectionView:transitionLayoutForOldLayout:newLayout:
Просит пользовательское расположение перехода использовать при перемещении между указанными разметками.
Объявление
Swift
optional func collectionView(_
collectionView
: UICollectionView, transitionLayoutForOldLayoutfromLayout
: UICollectionViewLayout, newLayouttoLayout
: UICollectionViewLayout) -> UICollectionViewTransitionLayout!Objective C
- (UICollectionViewTransitionLayout *)collectionView:(UICollectionView *)
collectionView
transitionLayoutForOldLayout:(UICollectionViewLayout *)fromLayout
newLayout:(UICollectionViewLayout *)toLayout
Параметры
collectionView
Представление набора, объект расположения которого изменяется.
fromLayout
Текущий макет представления набора. Это - начальная точка для перехода.
toLayout
Новое расположение для представления набора.
Возвращаемое значение
Расположение перехода представления набора возражает для использования для выполнения перехода.
Обсуждение
Реализуйте этот метод, если Вы хотите возвратить пользовательское
UICollectionViewTransitionLayout
объект для использования во время перехода. Объект расположения перехода позволяет Вам настроить поведение ячеек и представлений художественного оформления при переходе от одного расположения до следующего. Обычно, переход между разметками заставляет элементы анимировать непосредственно от их текущих расположений до их новых расположений. С объектом расположения перехода у Вас могут быть объекты, следуют за не линейным контуром, используют различный алгоритм синхронизации или перемещаются согласно входящим сенсорным событиям.Если Ваш делегат не реализует этот метод, представление набора создает стандарт
UICollectionViewTransitionLayout
объект и использование, возражающее для управления переходом.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 7.0 и позже.
-
collectionView (_: shouldShowMenuForItemAtIndexPath:) - collectionView:shouldShowMenuForItemAtIndexPath:
Если меню действий должно быть выведено на экран для указанного элемента, спрашивает делегат.
Объявление
Swift
optional func collectionView(_
collectionView
: UICollectionView, shouldShowMenuForItemAtIndexPathindexPath
: NSIndexPath) -> BoolObjective C
- (BOOL)collectionView:(UICollectionView *)
collectionView
shouldShowMenuForItemAtIndexPath:(NSIndexPath *)indexPath
Параметры
collectionView
Объект представления набора, обращающийся с просьбой.
indexPath
Индексный путь затронутого элемента.
Возвращаемое значение
YES
true
если меню редактирования должно быть показано расположенное около элемента и указывающий на него илиNO
false
если это не должно.Обсуждение
Если пользователь содержит касание определенный элемент в представлении набора, этот метод (если реализовано) вызывается сначала. Возвратиться
YES
true
если Вы хотите разрешить меню редактирования быть выведенным на экран. ВозвратитьсяNO
false
если меню редактирования не должно быть показано — например, Вы могли бы возвратитьсяNO
false
если соответствующий элемент содержит данные, которые не должны быть скопированы или вставлены.Если Вы не реализуете этот метод, возвращаемое значение по умолчанию
NO
false
.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 6.0 и позже.
-
collectionView (_: canPerformAction:forItemAtIndexPath:withSender:) - collectionView:canPerformAction:forItemAtIndexPath:withSender:
Спрашивает делегат, если это может выполнить указанное действие с элементом в представлении набора.
Объявление
Swift
optional func collectionView(_
collectionView
: UICollectionView, canPerformActionaction
: Selector, forItemAtIndexPathindexPath
: NSIndexPath, withSendersender
: AnyObject!) -> BoolObjective C
- (BOOL)collectionView:(UICollectionView *)
collectionView
canPerformAction:(SEL)action
forItemAtIndexPath:(NSIndexPath *)indexPath
withSender:(id)sender
Параметры
collectionView
Объект представления набора, обращающийся с просьбой.
action
Селектор, идентифицирующий действие, которое будет выполняться.
indexPath
Индексный путь затронутого элемента.
sender
Объект, хотящий инициировать действие.
Возвращаемое значение
YES
true
если команда, соответствующая действию, должна появиться в меню редактирования илиNO
false
если это не должно.Обсуждение
Этот метод вызывается после
collectionView:shouldShowMenuForItemAtIndexPath:
метод. Это дает Вам возможность исключить команды из меню редактирования. Например, пользователь, возможно, скопировал некоторое содержание с одного элемента и хочет вставить его в другой элемент, который не может принять содержание. В таком случае мог возвратиться Ваш методNO
false
предотвратить дисплей соответствующей команды.Если Вы не реализуете этот метод, возвращаемое значение по умолчанию
NO
false
.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 6.0 и позже.
-
collectionView (_: performAction:forItemAtIndexPath:withSender:) - collectionView:performAction:forItemAtIndexPath:withSender:
Говорит делегату выполнять указанное действие с элементом в представлении набора.
Объявление
Swift
optional func collectionView(_
collectionView
: UICollectionView, performActionaction
: Selector, forItemAtIndexPathindexPath
: NSIndexPath, withSendersender
: AnyObject!)Objective C
- (void)collectionView:(UICollectionView *)
collectionView
performAction:(SEL)action
forItemAtIndexPath:(NSIndexPath *)indexPath
withSender:(id)sender
Параметры
collectionView
Объект представления набора, обращающийся с просьбой.
action
Селектор, представляющий действие, которое будет выполняться.
indexPath
Индексный путь затронутого элемента.
sender
Объект, инициировавший действие.
Обсуждение
Если пользователь касается действия в меню редактирования, представление набора вызывает этот метод. Ваша реализация этого метода должна сделать то, что является подходящим для действия. Например, для действия копии, это должно извлечь соответствующее содержание элемента и записать его в общую область монтажа или приложение (частная) область монтажа.
Для получения информации о том, как выполнить связанные с областью монтажа операции, см. Ссылку класса UIPasteboard.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 6.0 и позже.