banner
李大仁博客

李大仁博客

天地虽大,但有一念向善,心存良知,虽凡夫俗子,皆可为圣贤。

iOS開發之創建背景透明或含有自定義圖片的UIToolbar

iOS 系統自帶的 UIToolbar 的樣式簡單,往往不能滿足開發或特殊目的的需要,例如設置完全背景透明的 UIToolbar 或者自定義 UIToolbar 的背景色,這時候就需要對 UIToolbar 進行單獨定制。 設置 UIToolbar 背景透明,只需要設置 UIToolbar 的 backgroundColor 為 [UIColor clearColor] 即可,如果需要單獨定制 UIToolbar 的背景色,則需要繼承並自己實現 UIToolbar 對象。 直接修改背景色請參照以下的方法 1,繼承並自己實現 UIToolbar 對象請參照方法 2。

方法 1 iOS6.1 之前

// 使 button 的 tint 色與導航條一致
toolbar.tintColor = self.navigationController.navigationBar.tintColor;
toolbar.backgroundColor = [UIColor clearColor]; // 設置為背景透明
for (UIView *view in [rightToolbar subviews]) {
if ([view isKindOfClass:[UIImageView class]]) {
[view removeFromSuperview];
}
}

iOS7 以後

[self.toolbar setBackgroundImage:[UIImage new]
forToolbarPosition
barMetrics];
[self.toolbar setShadowImage:[UIImage new]
forToolbarPosition];

方法 2

//MyToolbar.h
@interface MyToolbar : UIToolbar

@end

//MyToolbar.m
@implementation MyToolbar

  • (id)initWithFrame:(CGRect)aRect {
    if ((self = [super initWithFrame])) {
    self.opaque = NO;
    self.backgroundColor = [UIColor clearColor]; // 設置為背景透明,可以在這裡設置背景圖片
    //self.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background"]];
    self.clearsContextBeforeDrawing = YES;
    }
    return self;
    }

  • (void)drawRect:(CGRect)rect {
    // do nothing
    }

@end

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。