日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

NavigationBar 渐隐效果

發布時間:2023/12/15 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NavigationBar 渐隐效果 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

考慮到繼承UINavigationBar使用起來會非常不便,我們決定用Category來實現,首先定義我們的category:

@interface?UINavigationBar?(BackgroundColor) -?(void)lt_setBackgroundColor:(UIColor?*)backgroundColor;@end

實現:我們使用associatedObject將overlayView動態地綁定到UINavigationBar的instance上,當調用lt_setBackgroundColor的時候,我們只要更新這個overlayView就行啦~

@implementation?UINavigationBar?(BackgroundColor)static?char?overlayKey;-?(UIView?*)overlay {????return?objc_getAssociatedObject(self,?&overlayKey); }-?(void)setOverlay:(UIView?*)overlay {objc_setAssociatedObject(self,?&overlayKey,?overlay,?OBJC_ASSOCIATION_RETAIN_NONATOMIC); }-?(void)lt_setBackgroundColor:(UIColor?*)backgroundColor {????if?(!self.overlay)?{[self?setBackgroundImage:[UIImage?new]?forBarMetrics:UIBarMetricsDefault];????????//?insert?an?overlay?into?the?view?hierarchyself.overlay?=?[[UIView?alloc]?initWithFrame:CGRectMake(0,?-20,?[UIScreen?mainScreen].bounds.size.width,?self.bounds.size.height?+?20)];??????self.overlay.autoresizingMask?=?UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;[self?insertSubview:self.overlay?atIndex:0];}????self.overlay.backgroundColor?=?backgroundColor; } @end

最后在scrollViewDidScroll中,我們就可以動態地修改UINavigationBar的backgroundColor了:

[self.navigationController.navigationBar?lt_setBackgroundColor:[color?colorWithAlphaComponent:alpha]];

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

-(void)scrollViewDidScroll:(UIScrollView *)scrollView{

? ??CGFloat alpha=scrollView.contentOffset.y/90.0f>1.0f?1:scrollView.contentOffset.y/90.0f;

? ? ?[self.navigationController.navigationBar setBackgroundImage:[self getImageWithAlpha:alpha] forBarMetrics:UIBarMetricsDefault];

? ? }

#pragma handle image -mark

//合成圖片

-(UIImage *)getImageWithAlpha:(CGFloat)alpha{

?? ?

? ? UIColor *color=[UIColor colorWithRed:1 green:0 blue:0 alpha:alpha];

? ? CGSize colorSize=CGSizeMake(1, 1);

? ? UIGraphicsBeginImageContext(colorSize);

? ? CGContextRef context = UIGraphicsGetCurrentContext();

? ? CGContextSetFillColorWithColor(context, color.CGColor);

? ? CGContextFillRect(context, CGRectMake(0, 0, 1, 1));

?? ?

? ? UIImage *img=UIGraphicsGetImageFromCurrentImageContext();

? ? UIGraphicsEndImageContext();

? ??return img;

}


轉載于:https://my.oschina.net/gongxiao/blog/537848

總結

以上是生活随笔為你收集整理的NavigationBar 渐隐效果的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。