2013-10-19 13 views
13

Lubię dodawać własne WhatsApp ActivityItem do UIActivityViewController, ale zawsze jest ono dodawane do dolnego, nieubarwionego paska aktywności, ale lubię dodawać go do górnego paska, tego z kolorowymi przedmiotami.Jak dodać ActivityItem do górnego paska działań w UIActivityViewController?

Ów kod używać:

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

odczuwalna. enter image description here

Odpowiedz

40

w Twojej UIActivity podklasy trzeba po prostu zastąpić jedną metodę:

+ (UIActivityCategory)activityCategory 
{ 
    return UIActivityCategoryShare; 
} 

Istnieją możliwych kategoriach: akcji i udziałów.
To jest ważne, to jest metoda klasy, a nie instancja. Ponadto, jest to specyficzne dla systemu iOS 7 - wszystkie działania są umieszczane w dolnej linii (jeśli istnieją), a następnie nad działaniami udostępniania, a następnie nad AirDrop. Tak więc, jeśli chcesz na przykład pozbyć się dolnej linii, po prostu wyklucz wszystkie działania. Jeśli chcesz umieścić coś w linii akcji/akcji - przesuń activityCategory. domyślnie jest to UIActivityCategoryShare;

+1

Ok, element zostanie przeniesiony do góry teraz, ale mam szary kwadrat zamiast ikony, rozmiar ikony jest 60x60. i jest to mrówczan PNG. Każdy pomysł, dlaczego? –

+1

Twoje niestandardowe czynności nie mogą być kolorowe. IOS automatycznie pobiera ikonę i przetwarza ikonę - mów, że twoja ikona jest tylko maską. Ponadto, jeśli się nie mylę, ios7 potrzebuje 70x70 ikon dla elementów aktywności. http://stackoverflow.com/questions/18942893/uiactivity-wont-show-image/18943308#18943308 - ten sam numer co Twój –

+0

Korienv Nie może być żadnego koloru oprócz szarego w kostiumowym UIActivity, nawet w UIActivityCategoryShare ?! To nie jest dobre, nie podoba mi się to:/Dzięki i tak! A dla iPhone'a i iPoda rozmiar obrazu na iOs 7 powinien wynosić 60x60, czytam go w dokumentach Apple. –

2

w Swift,

override static func activityCategory() -> UIActivityCategory 
{ 
    return .Share 
} 
Powiązane problemy