LoginSignup
5
4

More than 5 years have passed since last update.

[objc] JASidePanelsのハンバーガーボタンをUIImageにカスタマイズする

Posted at

JASidePanelController.m を継承したクラスで 下記2つのメソッドをオーバーライド


- (UIBarButtonItem *)leftButtonForCenterPanel
+ (UIImage *)defaultImage

↓こんな感じで任意の画像にカスタマイズします


/**
* [override] 
*/
- (UIBarButtonItem *)leftButtonForCenterPanel
{
    UIImage *humbergerImage = [[self class] defaultImage];

    //ボタンアクションがきくようにUIButton作成
    //参考 : @see http://akisute.com/2010/04/uibarbuttonitem.html
    UIButton *customHumbergerButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, humbergerImage.size.width*0.5, humbergerImage.size.height*0.5)];
    [customHumbergerButton setBackgroundImage:humbergerImage forState:UIControlStateNormal];
    [customHumbergerButton addTarget:self action:@selector(toggleLeftPanel:) forControlEvents:UIControlEventTouchUpInside];

    //バーボタンアイテム作成
    UIBarButtonItem* humbergerItem = [[UIBarButtonItem alloc] initWithCustomView:customHumbergerButton];
    return humbergerItem;
}

/**
* [override] 
*/
+ (UIImage *)defaultImage
{
    static UIImage *defaultImage = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^
    {
        //任意の画像
        defaultImage = [UIImage imageNamed:@"HeaderBtnHunberger.png"];
    });
    return defaultImage;
}


5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4