2013-10-19 23 views
13

我喜歡將我自己的WhatsApp ActivityItem添加到UIActivityViewController,但它總是添加到較低的非彩色活動欄中,但我希望將其添加到上面的欄中,即帶有彩色項目的欄。如何將一個ActivityItem添加到UIActivityViewController中的上方活動欄?

,這是我使用的代碼:

WhatsApp *whatsApp = [[WhatsApp alloc] init]; 
      UIActivityViewController* activityVC = [[UIActivityViewController alloc] initWithActivityItems:@[image, text] applicationActivities:@[whatsApp]]; 

像。 enter image description here

回答

40

在您的自定義UIActivity子類,你要簡單地重寫了一個方法:

+ (UIActivityCategory)activityCategory 
{ 
    return UIActivityCategoryShare; 
} 

有可能的類別:動作和共享。
重要的是,這是方法,而不是實例。此外,它是iOS 7特有的 - 所有操作活動都放在底線(如果有),然後放在共享活動上方,然後放在AirDrop上方。所以,如果你想擺脫底線,只需排除所有的行動活動。如果您想在分享/操作行中放置某些內容 - 請覆蓋activityCategory。默認是UIActivityCategoryShare;

+1

好,該項目被移動到頂部了,但我有一個灰色方塊代替的圖標,圖標的大小爲60x60。它是一個PNG甲酸鹽。任何想法爲什麼? –

+1

您的自定義活動不能變得豐富多彩。 iOS會自己提取圖標並處理圖標 - 說你的圖標只是掩碼。另外,如果我沒有弄錯ios7需要活動項目的70x70圖標。 http://or.stackoverflow.com/questions/18942893/uiactivity-wont-show-image/18943308#18943308 - 與你同樣的問題 –

+0

Korienv因此,在服裝UIActivity中,除了灰色以外,哪怕是任何顏色,即使在UIActivityCategoryShare ?!這不太好,我不喜歡:/謝謝你!對於iPhone和iPod,iOs 7上的圖像大小應爲60x60,我在Apple文檔中閱讀它。 –

2

在斯威夫特,

override static func activityCategory() -> UIActivityCategory 
{ 
    return .Share 
} 
相關問題