我結束了創建自定義UIToolbar類解決這個問題我自己:
DLYCustomToolbar.h
#import <UIKit/UIKit.h>
#import "UIToolbar+EEToolbarCenterButton.h"
@interface DLYCustomToolbar : UIToolbar
@property (nonatomic) bool isMasked;
@end
DLYCustomToolbar.m:
#import "DLYCustomToolbar.h"
@implementation DLYCustomToolbar
- (void) drawRect:(CGRect)rect {
[[UIColor colorWithRed:0 green:0 blue:0 alpha:0.5] setFill];
UIRectFill(rect);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetBlendMode(context, kCGBlendModeClear);
if(_isMasked) {
float circleDiameter = 58;
CGRect pathRect = CGRectMake(self.frame.size.width/2-circleDiameter/2, -circleDiameter/2+2, circleDiameter, circleDiameter);
UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:pathRect];
[path fill];
}
CGContextSetBlendMode(context, kCGBlendModeNormal);
}
- (void) setIsMasked:(bool)isMasked {
if (isMasked != _isMasked) {
_isMasked = isMasked;
[self setNeedsDisplay];
}
}
@end