2016-09-02 6 views
9

Единственные варианты для укладки, которые я видел в API являются:Можно ли изменить цвет UIPreviewAction?

  • UIPreviewActionStyleDefault
  • UIPreviewActionStyleSelected,
  • UIPreviewActionStyleDestructive

Можно ли как-то рисовать кнопки в другом цвете? Наш дизайнер действительно не понравились синие кнопки по умолчанию

+0

Я думаю, что это отвечает [здесь] (http://stackoverflow.com/a/26770557/790842) – iphonic

ответ

3

Нет, невозможно изменить цвета кнопок в UIPreviewAction. Даже если вы добавите цветные изображения, он переключится на синий цвет по умолчанию.

1

Вы можете добавить эти фрагменты на ниже для ViewController, который реализует UIPreviewAction

- (void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 
    UIView *containerView = [self.view superviewOfClass:NSClassFromString(@"_UIVisualEffectContentView")]; 
    containerView.tintColor = YOUR_CUSTOM_COLOR; 
} 

В категории UIView

- (UIView *)superViewOfClass:(Class)class { 
    UIView *parent = self; 
    while ((parent = parent.superview)) { 
     if ([parent isKindOfClass:class]) { 
      return parent; 
     } 
    } 
    return nil; 
} 
+1

Да , Я думаю, я предпочитаю не использовать такие решения. Слишком легко сломаться с обновлениями iOS. Но спасибо –

1

Попробуйте это:

myPreviewAction.tintColor = myColor 

С этим расширением UIPreviewAction:

extension UIPreviewAction { 

    var tintColor: UIColor? { 
     get { 
      return value(forKey: "_color") as? UIColor 
     } 
     set { 
      setValue(newValue, forKey: "_color") 
     } 
    } 

} 

 Смежные вопросы

  • Нет связанных вопросов^_^