2013-01-07 34 views
5

是否可以覆蓋由UIActivityViewController使用的內置UIActivity類型執行的活動?覆蓋由內置UIActivity類型執行的活動

例如,我希望Facebook活動使用我自己的自定義視圖而不是內置的視圖。我知道你可以繼承UIActivity來創建你自己的應用程序特定的活動,但是你是否總是堅持內置的默認行爲?

+0

是的,你可以自定義任何UIActivity – Naresh

回答

5

您不能覆蓋內置的。你可以做的最好的是停用它們,並用你自己的UIActivity的子類來替換它們。在功能上,這與覆蓋它們具有相同的效果。

然而,在視覺上,這意味着您必須爲這些服務提供您自己的圖標圖像。然後,蘋果公司的代碼將拍攝這些圖像,丟棄顏色數據並使用阿爾法貼圖來製作灰度色版本,以抵禦蘋果公司通常的黑點背景。您無法爲自己的自定義活動提供豐富多彩的圖像。據推測,這是爲了阻止人們複製「官方」服務圖標,併爲了他們自己的目的顛覆他們,例如假裝在Facebook上發佈某些東西,而實際上做了一些完全不同的事情。

+0

我害怕這是唯一的方法。幾乎沒有那麼好。 – SeanK

1

您無法覆蓋內置UIActivity類型的行爲 - 但您可以通過提供自己的UIActivityItemProvider子類來覆蓋它們獲得的數據。 爲此,您必須先覆蓋– activityViewController:itemForActivityType: 因此,雖然它不是100%,但您至少可以根據自己的意願彎曲內置的。

+0

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