私のアプリでは、次のようにUIBarButtonItem
、グラデーションを作成し、角丸四角形のベジエ パスでグラデーションをクリッピングし、サイズ変更可能な UIImage を作成することによって、のすべてのインスタンスをスタイル化するために使用するカスタム グラデーションがあります。
CGRect rect = CGRectMake(0, 0, 44, 44);
CGSize size = rect.size;
CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB();
size_t gradientNumberOfLocations = 2;
UIGraphicsBeginImageContextWithOptions(size, NO, 0);
CGContextRef btncontext = UIGraphicsGetCurrentContext();
CGFloat btngradientLocations[2] = { 0.2, 1.0 };
CGFloat btngradientComponents[8] = { 0.10, 0.10, 0.10, 1.0, 0.05, 0.05, 0.05, 1.0 };
CGGradientRef btngradient = CGGradientCreateWithColorComponents (colorspace, btngradientComponents, btngradientLocations, gradientNumberOfLocations);
UIBezierPath * path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:4.0f];
[path addClip];
CGContextDrawLinearGradient(btncontext, btngradient, CGPointMake(0, 0), CGPointMake(0, size.height), 0);
UIImage *btnimage = UIGraphicsGetImageFromCurrentImageContext();
CGGradientRelease(btngradient);
UIGraphicsEndImageContext();
CGColorSpaceRelease(colorspace);
UIImage *navButton = [btnimage resizableImageWithCapInsets:UIEdgeInsetsMake(22.0, 8.0, 22.0, 8.0)];
[[UIBarButtonItem appearance] setBackgroundImage:navButton forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
これは問題なく動作し、 を介して戻るボタンをスタイル化する同様の方法を開発しています-setBackButtonBackgroundImage
が、質問があります:
UIBezierPath
戻るボタンの輪郭を表すオブジェクトを作成する適切な方法を誰かが知っているかどうかを知りたい. PNG またはそのようなリソースを使用する必要があります。
どんな助けでも大歓迎です、ありがとう。