Ответ 1
Попробуйте добавить подчеркивание к методу в классе подкласса UIActivity
- (UIImage *)_activityImage {}
Вы теряете закругленный серый ограничивающий прямоугольник, хотя
Я создал пользовательский UIActivity для отображения в общем листе. Я создал значок 60x60 (png файл) в полном цвете, но когда он отображается, он отображает только контур в сером цвете. Я не вижу, что я написал неправильно. Надеюсь, кто-то увидит то, что я пропустил. Любая помощь будет оценена. Вот мой код...
@implementation MyActivity
#pragma mark - Overrides
- (NSString *)activityType {
return @"MyType";
}
- (NSString *)activityTitle {
return @"ShareMe";
}
- (UIImage *)activityImage {
return [UIImage imageNamed:@"MyIcon_60x60.png"];
}
- (BOOL)canPerformWithActivityItems:(NSArray *)activityItems {
return YES;
}
- (void)prepareWithActivityItems:(NSArray *)activityItems {
// Do Something
}
+ (UIActivityCategory)activityCategory {
return UIActivityCategoryShare;
}
@end
Попробуйте добавить подчеркивание к методу в классе подкласса UIActivity
- (UIImage *)_activityImage {}
Вы теряете закругленный серый ограничивающий прямоугольник, хотя
Я не уверен, что это ошибка или функция, но в iOS 8, если activityCategory UIActivityCategoryShare, она показывает красивую иконку с закругленным цветом. Он показывает серый ящик в iOS 7. _activityImage выглядит для меня частным API.
+ (UIActivityCategory)activityCategory {
return UIActivityCategoryShare;
}
К сожалению, так оно и должно работать. Состояние Apple Docs:
Альфа-канал изображения используется в качестве маски для создания окончательного изображение, которое предоставляется пользователю. Любые данные цвета на изображении сам игнорируется...
Если вы хотите использовать полноцветное изображение, вам придется реплицировать поведение UIActivityViewController
и добавить поддержку цветных изображений.
Я рекомендую вам посмотреть Overshare, поскольку он поддерживает полноцветные значки.
В iOS 10 задайте свойство класса activityCategory
вашего подкласса UIActivity для .share. Это приведет к тому, что значок активности появится в цвете в верхней строке UIActivityViewController.
В подклассе UIActivity:
class GroupMessageActivity: UIActivity
{
...
override open class var activityCategory: UIActivityCategory
{
get
{
return UIActivityCategory.share;
}
}
...
}
Значение по умолчанию или UIActivityCategory.action
использует альфа-канал для создания полутонового изображения в нижней строке действия.