2013-04-20 88 views

回答

14

看看這個功能JASidePanelController.m

+ (UIImage *)defaultImage { 
    static UIImage *defaultImage = nil; 
    static dispatch_once_t onceToken; 
    dispatch_once(&onceToken, ^{ 
     UIGraphicsBeginImageContextWithOptions(CGSizeMake(20.f, 13.f), NO, 0.0f); 

     [[UIColor blackColor] setFill]; 
     [[UIBezierPath bezierPathWithRect:CGRectMake(0, 0, 20, 1)] fill]; 
     [[UIBezierPath bezierPathWithRect:CGRectMake(0, 5, 20, 1)] fill]; 
     [[UIBezierPath bezierPathWithRect:CGRectMake(0, 10, 20, 1)] fill]; 

     [[UIColor whiteColor] setFill]; 
     [[UIBezierPath bezierPathWithRect:CGRectMake(0, 1, 20, 2)] fill]; 
     [[UIBezierPath bezierPathWithRect:CGRectMake(0, 6, 20, 2)] fill]; 
     [[UIBezierPath bezierPathWithRect:CGRectMake(0, 11, 20, 2)] fill]; 

     defaultImage = UIGraphicsGetImageFromCurrentImageContext(); 
     UIGraphicsEndImageContext(); 

    }); 
    return defaultImage; 
} 

這是使上的CustomButton的3條線的一部分。

它被稱爲本:

- (UIBarButtonItem *)leftButtonForCenterPanel { 
    return [[UIBarButtonItem alloc] initWithImage:[[self class] defaultImage] style:UIBarButtonItemStylePlain target:self action:@selector(toggleLeftPanel:)]; 
} 

所以使它的風俗是由例如:

- (UIBarButtonItem *)leftButtonForCenterPanel { 
UIImage *faceImage = [UIImage imageNamed:@"facebook.png"]; 
UIButton *face = [UIButton buttonWithType:UIButtonTypeCustom]; 
face.bounds = CGRectMake(0, 0, faceImage.size.width, faceImage.size.height); 
[face setImage:faceImage forState:UIControlStateNormal]; 
[face addTarget:self 
      action:@selector(toggleLeftPanel:) 
    forControlEvents:UIControlEventTouchUpInside]; 
return [[UIBarButtonItem alloc] initWithCustomView:face]; 
} 

請它改變你的情況。希望這有助於...