2013-01-07 3 views
5

Czy można zastąpić działanie wykonywane przez wbudowane typy UIActivity używane przez UIActivityViewController?Zastępowanie aktywności wykonywanej przez wbudowane typy UIActivity

Na przykład chciałbym, aby aktywność na Facebooku używała własnego widoku niestandardowego zamiast wbudowanego. Wiem, że możesz podklasować UIActivity, aby tworzyć własne działania dla aplikacji, ale czy zawsze utknąłeś z domyślnym zachowaniem dla wbudowanych?

+0

Tak, możesz dostosować dowolny UIActivity – Naresh

Odpowiedz

5

Nie można przesłonić wbudowanych. Najlepsze, co możesz zrobić, to dezaktywować je i zastąpić własnymi podklasami UIActivity. Funkcjonalnie miałoby to taki sam skutek jak nadpisywanie ich.

Wizualnie oznacza to, że należy dostarczyć własne obrazy ikon dla tych usług. Kod firmy Apple pobierze te obrazy, wyrzuci dane kolorów i użyje mapy alfa, aby ustawić wersję w odcieniach szarości na tle zwykłego czarnego przerywanego tła Apple. Nie możesz dostarczać kolorowych obrazów do własnych niestandardowych czynności. Prawdopodobnie ma to na celu powstrzymanie ludzi przed kopiowaniem "oficjalnych" ikon usług i obalaniem ich dla własnych celów, tj. Udawaniem, że publikują coś na Facebooku, podczas gdy faktycznie robią coś zupełnie innego.

+0

Obawiałem się, że to jedyny sposób. Nie tak ładnie. – SeanK

1

Nie można przesłonić zachowania wbudowanych typów UIActivity - można jednak zastąpić otrzymywane dane, podając własną podklasę UIActivityItemProvider. Do tego trzeba będzie nadpisać – activityViewController:itemForActivityType: Tak więc, choć nie jest to w 100% to, czego szukasz, możesz przynajmniej zgiąć wbudowane nieco do swojej woli.

+0

http://stackoverflow.com/questions/26451583/uiactivityview-controller-behaviour-is-strange –