2016-09-02 41 views
9

Các tùy chọn chỉ dành cho phong cách tôi nhìn thấy trong API là:Có thể thay đổi màu của UIPreviewAction không?

  • UIPreviewActionStyleDefault
  • UIPreviewActionStyleSelected,
  • UIPreviewActionStyleDestructive

Có thể bằng cách nào đó vẽ các nút màu khác? nhà thiết kế của chúng tôi thực sự không thích các nút màu xanh mặc định

+0

Tôi nghĩ rằng đó là trả lời [ở đây] (http://stackoverflow.com/a/26770557/790842) – iphonic

Trả lời

3

Không, nó là không thể thay đổi màu của nút trong UIPreviewAction. Ngay cả khi bạn thêm hình ảnh màu, nó sẽ chuyển sang màu xanh mặc định.

1

Bạn có thể thêm những đoạn trên dưới cho viewController mà thực hiện UIPreviewAction

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

Trong một thể loại UIView

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

Ừ , Tôi nghĩ rằng tôi không thích sử dụng các loại giải pháp này. Quá dễ dàng để phá vỡ với bản cập nhật iOS. Nhưng cảm ơn bạn –

1

Hãy thử điều này:

myPreviewAction.tintColor = myColor 

Với phần mở rộng UIPreviewAction này:

extension UIPreviewAction { 

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

} 
Các vấn đề liên quan