1.1.SLComposeViewController 类参考
1.1.1.概述SLComposeViewController类显示一个view,让用户可以在支持的social网络服务上发表一个公告(post)。 在显示这个view给用户使用之前,使用SLComposeViewController的类方法isAvailableForServiceType:来检测服务账号(例如Twitter)是否已经设置以及可以访问。 初始化相关内容需要在显示view controller给用户使用之前进行。所有设置公告(post)内容的方法都将返回一个Boolean值。如果设置的内容不符合post的要求,或者view controller已经显示给用户了,那么这些方法将会返回NO。你设置post的所有内容必须在view controller显示给用户之前进行。显示了view controller之后,只有用户可以编辑公告。 你可以设置一个handler----使用completionHanler属性------当用户写完了一个公告时,会收到通知。注意,已经结束了的handler是不会被任何线程所调用的。 1.1.2.任务创建一个Social Compose View Controller+ composeViewControllerForServiceType: 创建一个socail compose view controller。
检查social服务类型+isAvailableForServiceType: 返回结果为指定服务类型是否可以发送请求。 serviceType属性 指定social网络服务
编写公告–setInitialText: 为公告设置初始文字。 – addImage: 给公告添加图片。 –removeAllImages 移除公告的所有图片。 – addURL: 给公告添加URL。 –removeAllURLs 移除公告的所有URL。
处理结果completionHandler属性 当用户完成了公告的编写,handler会被调用。
1.1.3.属性completionHandler当用户完成了公告的编写,handler会被调用。 @property(nonatomic, copy) SLComposeViewControllerCompletionHandler completionHandler
讨论 Handler有唯一的一个参数,用来表示用户是完成了还是取消了公告的编写。这个handler不保证被任何线程调用。 可用性 可用于iOS6.0以及之后 声明在 SLComposeViewController.h
serviceType指定social网络服务。 @property(nonatomic,readonly) NSString *serviceType
讨论 当在composeViewControllerForServiceType:中初始化一个social compose view controller时,会设置这个属性的值。同一时刻,显示的每一个social compose view controller只能连接到一个social服务上。使用这个属性,可以检查你的social compose view controller被指定到哪个服务上。Service_Type_Constants列出了可能的值。 可用性 可用于iOS6.0以及之后 声明在 SLComposeViewController.h
1.1.4.类方法composeViewControllerForServiceType:创建一个新的social compose view controller + (SLComposeViewController*)composeViewControllerForServiceType:(NSString *)serviceType 参数 serviceType 这个参数用于指定你想发公告的social网络服务。你必须使用Service_Type_Constants给出动了某个值。这个同样是设置serviceType的值。如果传入了一个非法的serviceType,这个方法会抛出一个异常。 返回值 返回一个social compose view controller,如果发生了错误,则返回nil。 讨论 使用这个方法创建social compose view controller。不要使用其它任何方法。 可用性 可用于iOS6.0以及之后 声明在 SLComposeViewController.h
isAvailableForServiceType:返回值为是否可以向一个指定的服务类型发送请求。 + (BOOL)isAvailableForServiceType:(NSString *)serviceType 参数 serviceType social网络服务。可以使用的值,请参考Service_Type_Constants列出的内容。 返回值 返回一个Boolean值,表示服务是否可以访问以及至少已经在设置里面设置了一个账号。 讨论 为了账号可用,用户必须在设备的设置里面登录social服务。 可用性 可用于iOS6.0以及之后 声明在 SLComposeViewController.h
1.1.5.实例方法addImage:给公告添加一个图片。 - (BOOL)addImage:(UIImage *)image
参数 image 添加到公告的图片。 返回值 返回一个Boolean值,表示image是否添加成功。 讨论 如果image不符合当前可用的空间,或者viewcontroller已经显示给用户了(因此不能被改变),则这个方法返回NO。可以使用的UIImage格式,请看UIImage Class参考中的“Supported Image Formats”。Image的大小限制取决于指定的服务器,这是由服务提供商指定的。表1-1列出了所支持服务的文档链接。 可用性 可用于iOS6.0以及之后 声明在 SLComposeViewController.h
addURL:给公告添加一个URL 。 - (BOOL)addURL:(NSURL *)url 参数 url 添加到公告的URL。 返回值 返回一个Boolean值,表示URL是否添加成功。 讨论 如果url不符合当前可用的字符,或者viewcontroller已经显示给用户了(因此不能被改变),则这个方法返回NO。字符的限制取决于指定的服务器,这是由服务提供商指定的。表2-1列出了所支持服务的文档链接。
可用性 可用于iOS6.0以及之后 声明在 SLComposeViewController.h
removeAllImages从公告中移除所有的图片。 - (BOOL)removeAllImages 返回值 返回一个Boolean值,表示所有的image是否移除成功。 讨论 如果view controller已经显示给用户了,这时调用removeAllImages方法,该方法会返回NO,并且公告中的图片不会被移除。
可用性 可用于iOS6.0以及之后 声明在 SLComposeViewController.h
removeAllURLs从公告中移除所有的URL。 - (BOOL)removeAllURLs 返回值 返回一个Boolean值,表示所有的URL是否添加成功。 讨论 如果view controller已经显示给用户了,这时调用removeAllURLs方法,该方法会返回NO,并且公告中的URL不会被移除。
可用性 可用于iOS6.0以及之后 声明在 SLComposeViewController.h
setInitialText:给公告初始化文字。 - (BOOL)setInitialText:(NSString *)text 参数 text 添加到公告的文本。 返回值 返回一个Boolean值,表示文本是否添加成功。 讨论 如果文本不符合当前可用的字符空间,或者view controller已经显示给用户了(因此不能被改变),则这个方法返回NO。字符的限制取决于指定的服务器,这是由服务提供商指定的。表2-1列出了所支持服务的文档链接。
1.1.6.常量SLComposeViewControllerCompletionHandler定义了一个handler,当用户结束编写post时,会被调用。 typedef void(^SLComposeViewControllerCompletionHandler) (SLComposeViewControllerResultresult); 讨论 当结束了post编写,但是SLComposeViewController任然显示时,handler被调用,它负责解雇view controller。这个handler可能返回的值请看“SLComposeViewControllerResult”。使用completionHandler属性来设置这个handler。 可用性 可用于iOS6.0以及之后 声明在 SLComposeViewController.h
SLComposeViewControllerResultcompletionHandler属性可能返回的值。 typedefNS_ENUM(NSInteger, SLComposeViewControllerResult){ SLComposeViewControllerResultCancelled, SLComposeViewControllerResultDone }; 常量 SLComposeViewControllerResultCancelled 公告没有被发送,但view controller被解雇。例如,用户选择取消或者账号不可用。 可用性 可用于iOS6.0以及之后 声明在 SLComposeViewController.h
SLComposeViewControllerResultDone view controller被解雇了,并且公告已经在后台被发送了。当用户选择发送时发生。 可用性 可用于iOS6.0以及之后 声明在 SLComposeViewController.h
表1-1 Social Services各自文档网站链接
|