2017/10/05 не работает в iOS 11.0.1
blockquote>для быстрого 3/4 (назовите его в основном потоке)
extension UIBarButtonSystemItem { func image() -> UIImage? { let tempItem = UIBarButtonItem(barButtonSystemItem: self, target: nil, action: nil) // add to toolbar and render it let bar = UIToolbar() bar.setItems([tempItem], animated: false) bar.snapshotView(afterScreenUpdates: true) // got image from real uibutton let itemView = tempItem.value(forKey: "view") as! UIView for view in itemView.subviews { if let button = view as? UIButton, let image = button.imageView?.image { return image.withRenderingMode(.alwaysTemplate) } } return nil } }
UIBarButtonSystemItem.play.image()
Для Objective-C:
+ (UIImage *)imageFromSystemBarButton:(UIBarButtonSystemItem)systemItem { UIBarButtonItem* tempItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:systemItem target:nil action:nil]; // Add to toolbar and render it UIToolbar *bar = [[UIToolbar alloc] init]; [bar setItems:@[tempItem] animated:NO]; [bar snapshotViewAfterScreenUpdates:YES]; // Get image from real UIButton UIView *itemView = [(id)tempItem view]; for (UIView* view in itemView.subviews) { if ([view isKindOfClass:[UIButton class]]) { return [(UIButton*)view imageForState:UIControlStateNormal]; } } return nil; }