如何着色偷看和流行自定义动作?

时间:2016-10-21 08:51:58

标签: ios 3dtouch tintcolor

当显示选择和弹出视图时,自定义操作(UIPreviewAction对象)以默认的iOS蓝色显示。 有什么方法可以用不同颜色着色吗?

1 个答案:

答案 0 :(得分:2)

对于iOS 11,似乎有用的是添加didFinishLaunchingWithOptions

UIApplication.sharedApplication.delegate.window.tintColor = MY_COLOR

我不确定相同的方法是否适用于iOS11之前的版本,但这对iOS11之前的版本有用:

在预览控制器的viewWillAppear方法中(实现previewActionItems方法的viewController添加:

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

superviewOfClass方法在UIView+MyUtils类别中实施:

- (UIView*) superviewOfClass:(Class)c
{
    UIView* parent = self;
    while ((parent = parent.superview))
    {
        if ([parent isKindOfClass:c])
        {
            return parent;
        }
    }
    return nil;
}