是否可以更改 UIPreviewAction 颜色?
Is it possible to change UIPreviewAction color?
我在 API 中看到的唯一样式选项是:
- UIPreviewActionStyleDefault
- UIPreviewActionStyleSelected,
- UIPreviewActionStyleDestructive
是否有可能以某种方式将按钮涂成另一种颜色?我们的设计师真的不喜欢默认的蓝色按钮
您可以在下面为实现 UIPreviewAction
的 viewcontroller 添加这些片段
- (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;
}
不,无法在 UIPreviewAction 中更改按钮颜色。即使您添加彩色图像,它也会切换为默认蓝色。
试试这个:
myPreviewAction.tintColor = myColor
使用此 UIPreviewAction 扩展:
extension UIPreviewAction {
var tintColor: UIColor? {
get {
return value(forKey: "_color") as? UIColor
}
set {
setValue(newValue, forKey: "_color")
}
}
}
您只能通过设置全局色调颜色 UIPreviewActionStyleDefault
:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[self.window setTintColor:[UIColor greenColor]];
return YES;
}
我在 API 中看到的唯一样式选项是:
- UIPreviewActionStyleDefault
- UIPreviewActionStyleSelected,
- UIPreviewActionStyleDestructive
是否有可能以某种方式将按钮涂成另一种颜色?我们的设计师真的不喜欢默认的蓝色按钮
您可以在下面为实现 UIPreviewAction
的 viewcontroller 添加这些片段- (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;
}
不,无法在 UIPreviewAction 中更改按钮颜色。即使您添加彩色图像,它也会切换为默认蓝色。
试试这个:
myPreviewAction.tintColor = myColor
使用此 UIPreviewAction 扩展:
extension UIPreviewAction {
var tintColor: UIColor? {
get {
return value(forKey: "_color") as? UIColor
}
set {
setValue(newValue, forKey: "_color")
}
}
}
您只能通过设置全局色调颜色 UIPreviewActionStyleDefault
:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[self.window setTintColor:[UIColor greenColor]];
return YES;
}