UIActivity
Оператор импорта
Swift
import UIKit
Objective C
@import UIKit;
Доступность
Доступный в iOS 6.0 и позже.
UIActivity
класс является абстрактным классом, который Вы разделяете на подклассы для реализации специализированных служб. Служба берет данные, передающиеся ей, делающие что-то к тем данным и возвращающие результаты. Например, служба средств социального общения могла бы взять любой текст, изображения, или другое содержание предоставлено для него, и отправьте их на учетную запись пользователя. Объекты действия используются в сочетании с a UIActivityViewController
объект, который ответственен за представление служб пользователю.
Необходимо разделить на подклассы UIActivity
только если Вы хотите предоставить услуги поддержки пользователю. Система уже предоставляет поддержку для многих стандартных служб и делает их доступными через UIActivityViewController
объект. Например, стандартные поддержки контроллера представления действия, посылающие по электронной почте данные, отправляя элементы на одну из учетных записей в социальных сетях пользователя и несколько других опций. Вы не должны предоставлять услуги поддержки ни для одного из встроенных типов.
Разделение на подклассы примечаний
Этот класс должен быть разделен на подклассы, прежде чем он сможет использоваться. Задание объекта действия должно действовать на данные, предоставленные ему и обеспечить некоторую метаинформацию, которую iOS может вывести на экран пользователю. Для более сложных служб объект действия может также вывести на экран настроенный пользовательский интерфейс и использовать его для сбора дополнительной информации от пользователя.
Методы для переопределения
При разделении на подклассы необходимо всегда переопределять следующие методы и использовать их для предоставления информации о службе:
Если Ваш canPerformWithActivityItems:
метод указывает, что Ваш подкласс в состоянии воздействовать на указанные данные, активное UIActivityViewController
отображения объекта Ваша служба пользователю. Когда пользователь выбирает Вашу службу, контроллер представления действия вызывает prepareWithActivityItems:
метод, сопровождаемый только одним из этих методов:
activityViewController
— Возвращает контроллер представления для представления пользователю. Если Ваша служба требует дополнительного ввода от пользователя, переопределите этот метод и используйте его для возврата объекта контроллера представления, ответственного за представление пользовательского UI. (Вы не должны представлять контроллер представления сами.) После того, как Ваш объект контроллера представления собирает необходимый ввод, это ответственно за инициирование задачи, связанной со службой.performActivity
— Выполняет службу, не выводя на экран дополнительного UI. Если Вашей службе не нужен дополнительный ввод от пользователя, переопределите этот метод и выполните задачу, связанную со службой.
-
Возвращает категорию действия, которое может привыкнуть к действиям группы в UI.
Объявление
Swift
class func activityCategory() -> UIActivityCategory
Objective C
+ (UIActivityCategory)activityCategory
Возвращаемое значение
Присвоенная категория действия. Возвраты реализации по умолчанию
UIActivityCategoryAction
.Обсуждение
Переопределите этот метод для определения различной категории действия для пользовательского действия.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 7.0 и позже.
-
Идентификатор для типа предоставленной услуги.
Возвращаемое значение
Строка, идентифицирующая предоставленную услугу Вашему приложению.
Обсуждение
Этот метод возвраты
nil
по умолчанию. Подклассы должны переопределить этот метод и возвратить допустимую строку, идентифицирующую прикладную службу. Эта строка не представлена пользователю.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 6.0 и позже.
-
Читаемая пользователем строка, описывающая службу.
Возвращаемое значение
Строка, описывающая службу.
Обсуждение
Этот метод возвраты
nil
по умолчанию. Подклассы должны переопределить этот метод и возвратить читаемую пользователем строку, описывающую службу. Строка, которую Вы возвращаете, должна быть локализована.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 6.0 и позже.
-
Изображение, идентифицирующее службу для пользователя.
Возвращаемое значение
Изображение, которое может быть представлено пользователю.
Обсуждение
Этот метод возвраты
nil
по умолчанию. Подклассы должны переопределить этот метод и возвратить допустимый объект изображения. Изображение используется для генерации кнопки для службы в UI, выведенном на экранUIActivityViewController
объект.Альфа-канал изображения используется в качестве маски для генерации заключительного изображения, представленного пользователю. Любые цветные данные в самом изображении проигнорированы. Непрозрачным пикселям применились к градиенту их, и этот градиент тогда положен поверх стандартного фона. Таким образом абсолютно непрозрачное изображение привело бы к заполненному прямоугольнику градиента.
Для iPhone и iPod touch, изображения на iOS 7 должны быть 60 60 точками; на более ранних версиях iOS необходимо использовать, отображает не больше, чем 43 43 точками. Для iPad изображения на iOS 7 должны быть 76 76 точками; на более ранних версиях iOS необходимо использовать, отображает не больше, чем 60 60 точками. На устройстве с дисплеем Сетчатки число пикселей удвоено в каждом направлении.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 6.0 и позже.
-
Возвращает булевскую переменную, указывающую, может ли служба действовать на указанные элементы данных.
Объявление
Swift
func canPerformWithActivityItems(_
activityItems
: [AnyObject]) -> BoolObjective C
- (BOOL)canPerformWithActivityItems:(NSArray *)
activityItems
Параметры
activityItems
Массив объектов переменных типов. Это объекты данных, на которые действовала бы служба.
Возвращаемое значение
YES
true
если Ваша служба может действовать на указанные элементы данных илиNO
false
если это не может.Обсуждение
Реализация по умолчанию этого метода возвраты
NO
false
. Подклассы должны переопределить его и возвратYES
true
если данные вactivityItems
на параметре может управлять Ваша служба. Ваша реализация должна проверить типы объектов в массиве и использовать ту информацию, чтобы определить, может ли Ваша служба действовать на соответствующие данные.UIActivityViewController
вызовы объектов этот метод при определении, который службы показать пользователю.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 6.0 и позже.
-
Подготавливает Вашу службу для действия на указанные данные.
Объявление
Swift
func prepareWithActivityItems(_
activityItems
: [AnyObject])Objective C
- (void)prepareWithActivityItems:(NSArray *)
activityItems
Параметры
activityItems
Массив объектов переменных типов. Это объекты данных, на которые можно действовать.
Обсуждение
Реализация по умолчанию этого метода ничего не делает. Этот метод вызывают после того, как пользователь выбрал Вашу службу, но прежде чем Вашу службу просят выполнить ее действие. Подклассы должны переопределить этот метод и использовать его для хранения ссылки на элементы данных в
activityItems
параметр. Кроме того, если реализация Вашей службы требует выводящего на экран дополнительного UI пользователю, можно использовать этот метод для подготовки контроллер представления возражают и делают его доступным отactivityViewController
метод.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 6.0 и позже.
-
Возвращает контроллер представления для представления пользователю.
Объявление
Swift
func activityViewController() -> UIViewController?
Objective C
- (UIViewController *)activityViewController
Возвращаемое значение
Контроллер представления для представления пользователю. Возвраты реализации по умолчанию
nil
.Обсуждение
Подклассы, обеспечивающие дополнительный UI с помощью контроллера представления, могут переопределить этот метод для возврата того контроллера представления. Если этот метод возвращает доступный объект, система представляет возвращенный контроллер представления модально вместо того, чтобы вызвать
performActivity
метод.Ваш пользовательский контроллер представления должен предоставить представлению Ваш пользовательский UI и должен обработать любое взаимодействие с пользователем в тех представлениях. После завершения действия не отклоняйте контроллер представления сами. Вместо этого вызовите
activityDidFinish:
метод и позволил системе отклонить его за Вас.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 6.0 и позже.
-
Когда никакой пользовательский контроллер представления не предоставлен, выполняет службу.
Объявление
Swift
func performActivity()
Objective C
- (void)performActivity
Обсуждение
Реализация по умолчанию этого метода ничего не делает. Если Ваша служба не обеспечивает пользовательского UI с помощью
activityViewController
метод, переопределите этот метод и используйте его для выполнения действия. Ваше действие должно воздействовать на элементы данных, полученные вprepareWithActivityItems:
метод.Этот метод вызывают на основном потоке Вашего приложения. Если Ваше приложение может завершить действие быстро на основном потоке, сделайте так и вызовите
activityDidFinish:
метод, когда это сделано. Если выполнение действия могло бы занять время, использовать этот метод, чтобы запустить работу в фоновом режиме и затем выйти без вызоваactivityDidFinish:
от этого метода. Когда Ваша фоновая работа завершится, вызватьactivityDidFinish:
. Необходимо вызватьactivityDidFinish:
на основном потоке.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 6.0 и позже.
-
Уведомляет систему, что Ваш объект действия завершил свою работу.
Объявление
Swift
func activityDidFinish(_
completed
: Bool)Objective C
- (void)activityDidFinish:(BOOL)
completed
Параметры
completed
Указать
YES
true
если служба выполнилась к завершению илиNO
false
если служба была отменена или не заканчивалась из-за ошибки.Обсуждение
Этот метод отклоняет интерфейс совместного использования, предоставленный
UIActivityViewController
объект. Если Вы обеспечили контроллер представления с помощьюactivityViewController
метод, этот метод отклоняет тот контроллер представления также.Необходимо вызвать этот метод после завершения работы, связанной со службой этого объекта. Это - истина независимо от того, использовали ли Вы
activityViewController
илиperformActivity
метод для инициирования службы. При вызове метода используйте булево значение, чтобы указать, завершилась ли служба успешно.Этот метод нужно вызвать на основном потоке.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 6.0 и позже.
-
Действие вводит, которого система имеет встроенную поддержку.
Объявление
Swift
let UIActivityTypePostToFacebook: String let UIActivityTypePostToTwitter: String let UIActivityTypePostToWeibo: String let UIActivityTypeMessage: String let UIActivityTypeMail: String let UIActivityTypePrint: String let UIActivityTypeCopyToPasteboard: String let UIActivityTypeAssignToContact: String let UIActivityTypeSaveToCameraRoll: String let UIActivityTypeAddToReadingList: String let UIActivityTypePostToFlickr: String let UIActivityTypePostToVimeo: String let UIActivityTypePostToTencentWeibo: String let UIActivityTypeAirDrop: String
Objective C
NSString *const UIActivityTypePostToFacebook; NSString *const UIActivityTypePostToTwitter; NSString *const UIActivityTypePostToWeibo; NSString *const UIActivityTypeMessage; NSString *const UIActivityTypeMail; NSString *const UIActivityTypePrint; NSString *const UIActivityTypeCopyToPasteboard; NSString *const UIActivityTypeAssignToContact; NSString *const UIActivityTypeSaveToCameraRoll; NSString *const UIActivityTypeAddToReadingList; NSString *const UIActivityTypePostToFlickr; NSString *const UIActivityTypePostToVimeo; NSString *const UIActivityTypePostToTencentWeibo; NSString *const UIActivityTypeAirDrop;
Константы
-
UIActivityTypePostToFacebook
Объект отправляет предоставленное содержание на стену пользователя на Facebook.
При использовании этой службы можно обеспечить
NSString
,NSAttributedString
,UIImage
,ALAsset
, иNSURL
объекты как данные для элементов действия. Можно также указатьNSURL
объекты, содержание которых используетassets-library
схема.Доступный в iOS 6.0 и позже.
-
UIActivityTypePostToTwitter
Объект отправляет предоставленное содержание на канал Twitter пользователя.
При использовании этой службы можно обеспечить
NSString
,NSAttributedString
,UIImage
,ALAsset
, иNSURL
объекты как данные для элементов действия. Можно также указатьNSURL
объекты, содержание которых используетassets-library
схема.Доступный в iOS 6.0 и позже.
-
UIActivityTypePostToWeibo
Объект отправляет предоставленное содержание на канал Weibo пользователя.
При использовании этой службы можно обеспечить
NSString
,NSAttributedString
,UIImage
,ALAsset
, иNSURL
объекты как данные для элементов действия. Можно также указатьNSURL
объекты, содержание которых используетassets-library
схема.Доступный в iOS 6.0 и позже.
-
UIActivityTypeMessage
Объект отправляет предоставленное содержание на приложение сообщений.
При использовании этой службы можно обеспечить
NSString
иNSAttributedString
объекты как данные для элементов действия. Можно также указатьNSURL
объекты, содержание которых используетsms
схема.Если MMS или FaceTime включены, можно обеспечить
UIImage
,ALAsset
, иNSURL
объекты как данные для элементов действия. Можно также указатьNSURL
объекты, содержание которых используетassets-library
схема.Указать
NSData
объект, необходимо реализоватьUIActivityItemSource
протокол, возвратите объект данных вactivityViewController:itemForActivityType:
, и возвратите UTI объекта данных вactivityViewController:dataTypeIdentifierForActivityType:
.Доступный в iOS 6.0 и позже.
-
UIActivityTypeMail
Объект отправляет предоставленное содержание на новое электронное письмо.
При использовании этой службы можно обеспечить
NSString
иUIImage
объекты иNSURL
объекты, указывающие на локальные файлы как данные для элементов действия.Указать
NSData
объект, необходимо реализоватьUIActivityItemSource
протокол, возвратите объект данных вactivityViewController:itemForActivityType:
, и возвратите UTI объекта данных вactivityViewController:dataTypeIdentifierForActivityType:
. Кроме того, Вы, возможно, должны зарегистрировать надлежащее отображение так, чтобы мог быть определен тип MIME.Доступный в iOS 6.0 и позже.
-
UIActivityTypePrint
Объект распечатывает предоставленное содержание.
При использовании этой службы можно обеспечить
UIImage
иNSData
объекты иNSURL
объекты, указывающие на локальные файлы как данные для элементов действия. Можно также обеспечитьUIPrintPageRenderer
,UIPrintFormatter
, иUIPrintInfo
объекты.Доступный в iOS 6.0 и позже.
-
UIActivityTypeCopyToPasteboard
Объект отправляет предоставленное содержание на область монтажа.
При использовании этой службы можно обеспечить
NSString
,UIImage
,NSURL
,UIColor
, иNSDictionary
объекты как данные для элементов действия.Доступный в iOS 6.0 и позже.
-
UIActivityTypeAssignToContact
Объект присваивает изображение контакту.
При использовании этой службы можно обеспечить a
UIImage
возразите как данные для элементов действия.Доступный в iOS 6.0 и позже.
-
UIActivityTypeSaveToCameraRoll
Объект присваивает изображение или видео к рулону камеры пользователя.
При использовании этой службы можно обеспечить a
UIImage
возразите как данные для основанных на изображении элементов действия. Для изображения и видео элементов, можно обеспечитьNSURL
объект с путем к видео.Доступный в iOS 6.0 и позже.
-
UIActivityTypeAddToReadingList
Объект добавляет URL к списку чтения Safari.
При использовании этой службы можно обеспечить
NSURL
возразите, чье содержание используетhttp
илиhttps
схема, указывающая на страницу для добавления.Доступный в iOS 7.0 и позже.
-
UIActivityTypePostToFlickr
Объект отправляет предоставленное изображение на учетную запись Flickr пользователя.
При использовании этой службы можно обеспечить
UIImage
,ALAsset
,NSURL
объекты, содержание которых используетfile
схема и точка к изображению, иNSData
объекты, содержание которых является данными изображения как данными для элементов действия. Можно также указатьNSURL
объекты, содержание которых используетassets-library
схема.Доступный в iOS 7.0 и позже.
-
UIActivityTypePostToVimeo
Объект отправляет предоставленное видео на учетную запись Vimeo пользователя.
При использовании этой службы можно обеспечить
ALAsset
,NSURL
объекты, содержание которых используетfile
схема и точка к видео, иNSData
объекты, содержание которых является видеоданными как данными для элементов действия. Можно также указатьNSURL
объекты, содержание которых используетassets-library
схема.Доступный в iOS 7.0 и позже.
-
UIActivityTypePostToTencentWeibo
Объект отправляет предоставленное содержание на канал Tencent Weibo пользователя.
При использовании этой службы можно обеспечить
NSString
,NSAttributedString
,UIImage
,ALAsset
, иNSURL
объекты как данные для элементов действия. Можно также указатьNSURL
объекты, содержание которых используетassets-library
схема.Доступный в iOS 7.0 и позже.
-
UIActivityTypeAirDrop
Объект делает предоставленное содержание доступным через AirDrop.
При использовании этой службы можно обеспечить
NSString
,NSAttributedString
,UIImage
,ALAsset
, иNSURL
объекты как данные для элементов действия. Можно также указатьNSURL
объекты, содержание которых используетassets-library
схема. Можно также обеспечитьNSArray
илиNSDictionary
объекты, содержащие перечисленные типы данных.Доступный в iOS 7.0 и позже.
Обсуждение
Эти константы представляют значения, которые могут быть сохранены в
activityType
свойство определенных с помощью системы объектов действия. -
-
Действия имеют определенную категорию и действие, которое UI может показать действиям, сгруппированным по категориям.
Объявление
Swift
enum UIActivityCategory : Int { case Action case Share }
Objective C
typedef enum : NSInteger { UIActivityCategoryAction, UIActivityCategoryShare, } UIActivityCategory;
Константы
-
Action
UIActivityCategoryAction
Действия, основная цель которых состоит в том, чтобы принять меры на выбранном пункте. Например, копируя изображение или сохраняя его к рулону камеры.
Доступный в iOS 7.0 и позже.
-
Share
UIActivityCategoryShare
Действия, основная цель которых состоит в том, чтобы совместно использовать выбранный пункт. Например, отправляя изображение по электронной почте.
Доступный в iOS 7.0 и позже.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 7.0 и позже.
-