您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費注冊]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>通訊/手機編程>

細數(shù)iOS的幾個小技巧

大?。?/span>0.2 MB 人氣: 2017-09-26 需要積分:1

  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)上面有一條線如下圖:

  細數(shù)iOS的幾個小技巧

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

  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%

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?