UILocalizedIndexedCollation
Оператор импорта
Swift
import UIKit
Objective C
@import UIKit;
Доступность
Доступный в iOS 3.0 и позже.
UILocalizedIndexedCollation
класс является удобством для организации, сортировки и локализации данных для табличного представления, имеющего индекс раздела. Источник данных табличного представления тогда использует объект сопоставления предоставить табличному представлению ввод для заголовков раздела и индексных заголовков раздела.
Табличные представления с индексами раздела идеальны для того, чтобы вывести на экран и облегчить доступ данных, составленных из многих элементов, организованных последовательной схемой упорядочивания, таких как алфавит. Пользователи касаются индексного заголовка для перехода к соответствующему разделу. Начальное табличное представление приложения Телефона/Контактов на iPhone является примером. Обратите внимание на то, что заголовки раздела могут отличаться, чем заголовки индекса.
Для подготовки данных к индексу раздела контроллер табличного представления создает объект индексируемого сопоставления и затем для каждого объекта модели, который должен быть индексирован, вызовы sectionForObject:collationStringSelector:
. Этот метод определяет раздел, в котором каждый из этих объектов должен появиться и возвращает целое число, идентифицирующее раздел. Контроллер табличного представления тогда помещает каждый объект в локальный массив для его раздела. Для каждого массива раздела контроллер вызывает sortedArrayFromArray:collationStringSelector:
метод для сортировки всех объектов в разделе. Объект индексируемого сопоставления является теперь хранилищем данных что использование контроллера табличного представления для предоставления данных индекса раздела табличному представлению, как проиллюстрировано в Перечислении 1.
Swift
func tableView(tableView: UITableView!, titleForHeaderInSection section: Int) -> String! {
let currentCollation = UILocalizedIndexedCollation.currentCollation() as UILocalizedIndexedCollation
let sectionTitles = currentCollation.sectionTitles as NSArray
return sectionTitles.objectAtIndex(section) as String
}
func sectionIndexTitlesForTableView(tableView: UITableView!) -> NSArray! {
let currentCollation = UILocalizedIndexedCollation.currentCollation() as UILocalizedIndexedCollation
return currentCollation.sectionIndexTitles as NSArray
}
func tableView(tableView: UITableView!, sectionForSectionIndexTitle title: String!, atIndex index: Int) -> Int {
let currentCollation = UILocalizedIndexedCollation.currentCollation() as UILocalizedIndexedCollation
return currentCollation.sectionForSectionIndexTitleAtIndex(index)
}
Objective C
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
return [[[UILocalizedIndexedCollation currentCollation] sectionTitles] objectAtIndex:section];
}
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
{
return [[UILocalizedIndexedCollation currentCollation] sectionIndexTitles];
}
- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index
{
return [[UILocalizedIndexedCollation currentCollation] sectionForSectionIndexTitleAtIndex:index];
}
-
Возвращает экземпляр индексируемого сопоставления для текущего табличного представления.
Объявление
Swift
class func currentCollation() -> AnyObject!
Objective C
+ (id)currentCollation
Возвращаемое значение
A
UILocalizedIndexedCollation
объект илиnil
если была проблема, создающая объект.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 3.0 и позже.
-
Возвращает целое число, идентифицирующее раздел, которого принадлежит объект модели.
Объявление
Swift
func sectionForObject(_
object
: AnyObject, collationStringSelectorselector
: Selector) -> IntObjective C
- (NSInteger)sectionForObject:(id)
object
collationStringSelector:(SEL)selector
Параметры
object
Объект модели приложения, которое является частью модели данных для табличного представления.
selector
Селектор, идентифицирующий метод, возвращая строку идентификации для
object
это используется в сопоставлении. Метод не должен взять параметры и возвратитьсяNSString
объект. Например, это могло быть aname
свойство на объекте.Возвращаемое значение
Целое число, идентифицирующее раздел, которого принадлежит объект модели. Числа возвратились, указывают последовательное упорядочивание.
Обсуждение
Контроллер табличного представления должен выполнить итерации через все объекты модели для табличного представления и вызвать этот метод для каждого объекта. Если приложение обеспечивает a
Localizable.strings
файл для текущего языкового предпочтения, объект индексируемого сопоставления локализует каждую строку, возвращенную методом, идентифицированнымselector
. Это использует это локализованное имя при сопоставлении заголовков. Контроллер должен использовать возвращенное целое число для идентификации локального массива «раздела», в который это должно вставитьobject
.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 3.0 и позже.
-
Сортирует объекты в разделе их локализованными заголовками.
Объявление
Swift
func sortedArrayFromArray(_
array
: [AnyObject], collationStringSelectorselector
: Selector) -> [AnyObject]Параметры
array
Массив, содержащий объекты модели для раздела.
selector
Селектор, идентифицирующий метод, возвращая строку идентификации для каждого объекта в
array
. Объект индексного сопоставления использует эту строку для сортировки объектов в массиве. Метод не должен взять параметры и возвратитьсяNSString
объект. Например, это могло быть aname
свойство на объекте.Возвращаемое значение
Новый массив, содержащий элементы в
array
), сортированный.Обсуждение
Контроллер табличного представления создает массив объектов для раздела (
array
) как часть итерации через ее объекты модели с вызовами кsectionForObject:collationStringSelector:
метод. Этот метод нужно вызвать на каждом локальном массиве раздела.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 3.0 и позже.
-
sectionTitles
СвойствоВозвращает список заголовков раздела для табличного представления. (только для чтения)
Объявление
Swift
var sectionTitles: [AnyObject] { get }
Objective C
@property(nonatomic, readonly) NSArray *sectionTitles
Обсуждение
Это свойство содержит локализованный список заголовков раздела, сортированных согласно указанному упорядочиванию (например, через Z на английском языке США). В его реализации
tableView:titleForHeaderInSection:
, источник данных может вызвать этот метод на объекте индексируемого сопоставления, передающем в индексе раздела и возвращающем результат.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 3.0 и позже.
-
sectionIndexTitles
СвойствоВозвращает список заголовков индекса раздела для табличного представления (только для чтения)
Объявление
Swift
var sectionIndexTitles: [AnyObject] { get }
Objective C
@property(nonatomic, readonly) NSArray *sectionIndexTitles
Обсуждение
Это свойство содержит локализованный список заголовков индекса раздела, сортированных согласно указанному упорядочиванию (например, через Z на английском языке США). В его реализации
sectionIndexTitlesForTableView:
, источник данных может вызвать этот метод на объекте индексируемого сопоставления и пасовать назад результат.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 3.0 и позже.
-
Возвращает раздел, к которому должно прокрутить табличное представление для данного индексного заголовка.
Объявление
Параметры
indexTitleIndex
Целое число, идентифицирующее заголовок индекса раздела его позицией в массиве таких заголовков.
Возвращаемое значение
Целое число, идентифицирующее раздел табличного представления, связалось с
indexTitleIndex
.Обсуждение
Этот метод позволяет табличному представлению отображаться между данным элементом в индексе раздела и данным разделом, даже когда нет непосредственного отображения. В его реализации
tableView:sectionForSectionIndexTitle:atIndex:
, источник данных может вызвать этот метод на объекте индексируемого сопоставления указание как параметр переданный - в индексном целом числе; это тогда возвращает результат табличному представлению.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 3.0 и позже.
См. также