ios 實用小技巧

1.控件的圓角問題

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;//設置路徑

button.layer.mask = masklayer;

舉例為button卒煞,其它繼承自UIView的控件都可以

2裳朋、navigationBar的透明問題

如果僅僅把navigationBar的alpha設為0的話,那就相當于把navigationBar給隱藏了舅锄,大家都知道微峰,父視圖的alpha設置為0的話伙狐,那么子視圖全都會透明的。那么相應的navigationBar的標題和左右兩個按鈕都會消失痹籍。這樣顯然達不到我們要求的效果呢铆。

(1)如果僅僅是想要navigationBar透明,按鈕和標題都在可以使用以下方法:

[self.navigationController.navigationBar setBackgroundImage:[UIImage new]

forBarMetrics:UIBarMetricsDefault];//給navigationBar設置一個空的背景圖片即可實現透明蹲缠,而且標題按鈕都在

細心的你會發(fā)現上面有一條線如下圖:

這就需要我們做進一步處理棺克,把線去掉,如下方法即可:

self.navigationController.navigationBar.shadowImage = [UIImage new];

//其實這個線也是image控制的线定。設為空即可

(2)如果你想在透明的基礎上實現根據下拉距離娜谊,由透明變得不透明的效果,那么上面那個就顯得力不從心了斤讥,這就需要我們采用另外一種方法了

//navigationBar是一個復合視圖纱皆,它是有許多個控件組成的,那么我們就可以從他的內部入手

[[self.navigationController.navigationBar subviews] objectAtIndex:0].alpha = 0;//這里可以根據scrollView的偏移量來設置alpha就實現了漸變透明的效果


3、全局設置navigationBar標題的樣式和barItem的標題樣式

//UIColorWithHexRGB( )這個方法是自己定義的派草,這里只需要給個顏色就好了

[[UINavigationBar appearance] setBarTintColor:UIColorWithHexRGB(0xfefefe)];

[[UINavigationBar appearance] setTitleTextAttributes:@{NSFontAttributeName:[UIFont boldSystemFontOfSize:18],NSForegroundColorAttributeName:UIColorWithHexRGB(0xfe6d27)}];

[[UITabBarItem appearance] setTitleTextAttributes:@{NSFontAttributeName : [UIFont boldSystemFontOfSize:10],NSForegroundColorAttributeName : UIColorWithHexRGB(0x666666)} forState:UIControlStateNormal];

[[UITabBarItem appearance] setTitleTextAttributes:@{NSFontAttributeName : [UIFont boldSystemFontOfSiz

4撑帖、navigationBar隱藏顯示的過度

一個頁面隱藏navigationBar,另一個不隱藏澳眷。兩個頁面進行push和pop的時候胡嘿,尤其是有側滑手勢返回的時候,不做處理就會造成滑動返回時钳踊,navigationBar位置是空的衷敌,直接顯示一個黑色或者顯示下面一層視圖,很難看拓瞪。這就需要我們加入過度動畫來隱藏或顯示navigationBar:

在返回后將要出現的頁面實現viewWillAppear方法缴罗,需要隱藏就設為YES,需要顯示就設為NO

- (void)viewWillAppear:(BOOL)animated{

[super viewWillAppear:animated];

[self.navigationController setNavigationBarHidden:NO animated:YES];

}


5祭埂、給webView添加頭視圖

webView是一個復合視圖面氓,里面包含有一個scrollView,scrollView里面是一個UIWebBrowserView(負責顯示WebView的內容)

UIView *webBrowserView = self.webView.scrollView.subviews[0];//拿到webView的webBrowserView

self.backHeadImageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenWidth*2/3.0)];

[_backHeadImageView sd_setImageWithURL:[NSURL URLWithString:self.imageUrl] placeholderImage:[UIImage imageNamed:@"placeholderImage"]];

[self.webView insertSubview:_backHeadImageView belowSubview:self.webView.scrollView];

//把backHeadImageView插入到webView的scrollView下面

CGRect frame = self.webBrowserView.frame;

frame.origin.y = CGRectGetMaxY(_backHeadImageView.frame);

self.webBrowserView.frame = frame;

//更改webBrowserView的frame向下移backHeadImageView的高度蛆橡,使其可見


6舌界、模態(tài)跳轉的動畫設置

設置模態(tài)跳轉的動畫,系統(tǒng)提供了四種可供選擇

DetailViewController *detailVC = [[DetailViewController alloc]init];

//UIModalTransitionStyleFlipHorizontal 翻轉

//UIModalTransitionStyleCoverVertical 底部滑出

//UIModalTransitionStyleCrossDissolve 漸顯

//UIModalTransitionStylePartialCurl 翻頁

detailVC.modalTransitionStyle = UIModalTransitionStylePartialCurl;

[self presentViewController:detailVC animated:YES completion:nil];


7泰演、圖片處理只拿到圖片的一部分

UIImage *image = [UIImage imageNamed:filename];

CGImageRef imageRef = image.CGImage;

CGRect rect = CGRectMake(origin.x, origin.y ,size.width, size.height);

//這里的寬高是相對于圖片的真實大小

//比如你的圖片是400x400的那么(0呻拌,0,400睦焕,400)就是圖片的全尺寸藐握,想取哪一部分就設置相應坐標即可

CGImageRef imageRefRect = CGImageCreateWithImageInRect(imageRef, rect);

UIImage *imageRect = [[UIImage alloc] initWithCGImage:imageRefRect];


8、給UIView設置圖片

UIImage *image = [UIImage imageNamed:@"playing"];

_layerView.layer.contents = (__bridge id)image.CGImage;

_layerView.layer.contentsCenter = CGRectMake(0.25, 0.25, 0.5, 0.5);

//同樣可以設置顯示的圖片范圍

//不過此處略有不同垃喊,這里的四個值均為0-1之間猾普;對應的依然是寫x,y,widt,height

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市本谜,隨后出現的幾起案子初家,更是在濱河造成了極大的恐慌,老刑警劉巖耕突,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件笤成,死亡現場離奇詭異,居然都是意外死亡眷茁,警方通過查閱死者的電腦和手機炕泳,發(fā)現死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來上祈,“玉大人培遵,你說我怎么就攤上這事浙芙。” “怎么了籽腕?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵嗡呼,是天一觀的道長。 經常有香客問我皇耗,道長南窗,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任郎楼,我火速辦了婚禮万伤,結果婚禮上,老公的妹妹穿的比我還像新娘呜袁。我一直安慰自己敌买,他們只是感情好,可當我...
    茶點故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布阶界。 她就那樣靜靜地躺著虹钮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪膘融。 梳的紋絲不亂的頭發(fā)上芙粱,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天,我揣著相機與錄音托启,去河邊找鬼宅倒。 笑死,一個胖子當著我的面吹牛屯耸,可吹牛的內容都是我干的。 我是一名探鬼主播蹭劈,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼疗绣,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了铺韧?” 一聲冷哼從身側響起多矮,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎哈打,沒想到半個月后塔逃,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡料仗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年湾盗,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片立轧。...
    茶點故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡格粪,死狀恐怖躏吊,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情帐萎,我是刑警寧澤比伏,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站疆导,受9級特大地震影響赁项,放射性物質發(fā)生泄漏。R本人自食惡果不足惜澈段,卻給世界環(huán)境...
    茶點故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一悠菜、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧均蜜,春花似錦李剖、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至充择,卻和暖如春德玫,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背椎麦。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工宰僧, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人观挎。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓琴儿,卻偏偏與公主長得像,于是被迫代替她去往敵國和親嘁捷。 傳聞我的和親對象是個殘疾皇子造成,可洞房花燭夜當晚...
    茶點故事閱讀 44,955評論 2 355

推薦閱讀更多精彩內容