ZYi*_*iOS 9 iphone share ios uiactivity uiactivitycategory
我的应用程序支持iOS 7+,我使用UIActivity图像大小:iPhone为60pt,iOS为iPad为76pt,
当触摸更多按钮重新排序项目时,它无法显示列表中的图标.


代码如下:
class ZYShare {
class ActivityItem {
init() {
self.title = ""
self.icon = ""
}
var title: String?
var icon: String?
var type: ShareType = ShareTypeAny
}
class CommonActivity: UIActivity {
lazy var itemInfo = ActivityItem()
override func prepareWithActivityItems(activityItems: [AnyObject]) {
// do something
}
override func canPerformWithActivityItems(activityItems: [AnyObject]) -> Bool {
return true
}
override class func activityCategory() -> UIActivityCategory {
return UIActivityCategory.Action
}
override func activityType() -> String? {
return NSLocalizedString(itemInfo.title ?? "", comment: "")
}
override func activityTitle() -> String? {
return NSLocalizedString(itemInfo.title ?? "", comment: "")
}
override func activityImage() -> UIImage? {
println(itemInfo.icon)
if let icon = itemInfo.icon {
return UIImage(named: icon)
} else {
return nil
}
}
override func performActivity() {
ShareSDK.showShareViewWithType(itemInfo.type
, container: nil
, content: publishContent
, statusBarTips: false
, authOptions: authOptions
, shareOptions: options
, result: handle)
self.activityDidFinish(true)
}
}
class QQActivity: CommonActivity {
override init() {
super.init()
self.itemInfo.icon = "ShareToQQ"
self.itemInfo.title = "QQ"
self.itemInfo.type = ShareTypeQQ
}
}
class WeChatSessionActivity: CommonActivity {
override init() {
super.init()
self.itemInfo.icon = "ShareToWeChat"
self.itemInfo.title = "??"
self.itemInfo.type = ShareTypeWeixiSession
}
}
class WeChatTimelineActivity: CommonActivity {
override init() {
super.init()
self.itemInfo.icon = "ShareToWeChatTimeLine"
self.itemInfo.title = "???"
self.itemInfo.type = ShareTypeWeixiTimeline
}
}
class QQSpaceActivity: CommonActivity {
override init() {
super.init()
self.itemInfo.icon = "ShareToQzone"
self.itemInfo.title = "QQ??"
self.itemInfo.type = ShareTypeQQSpace
}
}
}
Run Code Online (Sandbox Code Playgroud)
相当古老的问题,但也许解决方案也对其他人有帮助!
在您的UIActivity子类中实现/覆盖方法
- (UIImage *)activityImage {
return [UIImage imageNamed:@"Activity Icon"];
}
Run Code Online (Sandbox Code Playgroud)
返回要在UIActivityViewController本身中显示的图像(已完成)。
除了此实现/覆盖方法之外
- (UIImage *)activitySettingsImage {
return [UIImage imageNamed:@"Activity Settings Icon"];
}
Run Code Online (Sandbox Code Playgroud)
返回(其他或相同)图像以显示在更多/设置视图中。
我没有在文档中找到第二种方法,但是它不是UIAction的“ _xx”方法,所以我想它不是私有的...
| 归档时间: |
|
| 查看次数: |
1328 次 |
| 最近记录: |