細數(shù)iOS的幾個小技巧
1、控件的局部圓角問題
一個button或者label,只要右邊的兩個角圓角,或者只要一個圓角。該怎么辦呢?這就需要圖層蒙版來幫助我們了
CGRect rect = CGRectMake(0, 0, 100, 50);
CGSize radio = CGSizeMake(5, 5);//圓角尺寸
UIRectCorner corner = UIRectCornerTopLeft|UIRectCornerTopRight;//這只圓角位置
UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:rect byRoundingCorners:corner cornerRadii:radio];
CAShapeLayer *masklayer = [[CAShapeLayer alloc]init];//創(chuàng)建shapelayer
masklayer.frame = button.bounds;
masklayer.path = path.CGPath;//設(shè)置路徑
button.layer.mask = masklayer;
舉例為button,其它繼承自UIView的控件都可以
2、navigationBar的透明問題
如果僅僅把navigationBar的alpha設(shè)為0的話,那就相當于把navigationBar給隱藏了,大家都知道,父視圖的alpha設(shè)置為0的話,那么子視圖全都會透明的。那么相應(yīng)的navigationBar的標題和左右兩個按鈕都會消失。這樣顯然達不到我們要求的效果。
(1)如果僅僅是想要navigationBar透明,按鈕和標題都在可以使用以下方法:
?。踫elf.navigationController.navigationBar setBackgroundImage:[UIImage new]
forBarMetrics:UIBarMetricsDefault];//給navigationBar設(shè)置一個空的背景圖片即可實現(xiàn)透明,而且標題按鈕都在
細心的你會發(fā)現(xiàn)上面有一條線如下圖:
這就需要我們做進一步處理,把線去掉,如下方法即可:
self.navigationController.navigationBar.shadowImage = [UIImage new];
//其實這個線也是image控制的。設(shè)為空即可
?。?)如果你想在透明的基礎(chǔ)上實現(xiàn)根據(jù)下拉距離,由透明變得不透明的效果,那么上面那個就顯得力不從心了,這就需要我們采用另外一種方法了
//navigationBar是一個復(fù)合視圖,它是有許多個控件組成的,那么我們就可以從他的內(nèi)部入手
?。郏踫elf.navigationController.navigationBar subviews] objectAtIndex:0].alpha = 0;//這里可以根據(jù)scrollView的偏移量來設(shè)置alpha就實現(xiàn)了漸變透明的效果
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%
下載地址
細數(shù)iOS的幾個小技巧下載
相關(guān)電子資料下載
- iOS17.1可能明天發(fā)布,iOS17.1主要修復(fù)哪些問題? 377
- 華為全新鴻蒙蓄勢待發(fā) 僅支持鴻蒙內(nèi)核和鴻蒙系統(tǒng)應(yīng)用 719
- 蘋果手機系統(tǒng)iOS 17遭用戶質(zhì)疑 731
- iPhone12輻射超標?蘋果推送iOS 17.1解決此事 750
- 傳華為囤積零部件 目標明年智能手機出貨7000萬部;消息稱 MiOS 僅限國內(nèi),小米 28208
- 蘋果推送iOS17.0.3,解決iPhone15Pro系列存在機身過熱 216
- Testin云測兼容和真機服務(wù)平臺中上線iPhone 15系列手機 208
- 利爾達推出搭載HooRiiOS的Matter模組 145
- 運放參數(shù)解析:輸入偏置電流(Ibias)和失調(diào)電流(Ios) 128
- 昆侖太科發(fā)布支持國產(chǎn)飛騰騰銳D2000芯片的開源BIOS固件版本 448