是否可以更改UIPreviewAction颜色?

时间:2016-09-02 15:19:46

标签: ios cocoa-touch 3dtouch

我在API中看到的唯一样式选项是:

  • UIPreviewActionStyleDefault
  • UIPreviewActionStyleSelected,
  • UIPreviewActionStyleDestructive

是否有可能以某种方式将按钮涂成另一种颜色?我们的设计师真的不喜欢默认的蓝色按钮

4 个答案:

答案 0 :(得分:3)

不,在UIPreviewAction中无法更改按钮颜色。即使您添加彩色图像,它也会切换为默认的蓝色。

答案 1 :(得分:1)

您可以在下面为实现UIPreviewAction的viewcontroller添加这些代码段

$array = [2, 3, 2];
for ($i = 1; $i <= $array[0]; $i++) {
  for ($j = 1; $j <= $array[1]; $j++) {
    for ($k = 1; $k <= $array[2]; $k++) {
          echo $i,"-",$j,"-",$k,"<br>";
    }
  }
}

在UIView类别中

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

答案 2 :(得分:1)

试试这个:

myPreviewAction.tintColor = myColor

使用此UIPreviewAction扩展名:

extension UIPreviewAction {

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

}

答案 3 :(得分:1)

您只能通过设置全局色调颜色来UIPreviewActionStyleDefault

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [self.window setTintColor:[UIColor greenColor]];
    return YES;
}