IOS 建立漸層圖層

來源:互聯網
上載者:User

標籤:

代碼如下typedef enum {    GradientLayerKindLeftRight = 2000,    GradientLayerKindUpDown,    GradientLayerKindLBRT,//左下-右上    GradientLayerKindLTRB //左上-右下}GradientLayerKind; //-------------------------------------------------------------- //  建立矩形漸層圖層 // // @param frame      漸層圖層的frame //  @param startColor 起始顏色(設定起止顏色的時候可以設定顏色的透明度達到透明度漸層的效果) //  @param endColor   終止顏色 //  @param kind       漸層類型 //                    GradientLayerKindLeftRight = 1,//左-右 //                    GradientLayerKindUpDown,       //上-下 //                    GradientLayerKindLBRT,         //左下-右上 //                    GradientLayerKindLTRB          //左上-右下 //  @return 漸層色layer //----------------------------------------------------------- (CALayer*)ct_getGradientLayerWithFrame:(CGRect)frame StartColor:(UIColor *)startColor endColor:(UIColor*)endColor andKind:(GradientLayerKind)kind{    //漸層圖層    CAGradientLayer *gradientLayer =  [CAGradientLayer layer];    gradientLayer.frame = frame;    [gradientLayer setColors:[NSArray arrayWithObjects:(id)[startColor CGColor],(id)[endColor CGColor], nil]];       if (kind == GradientLayerKindUpDown) {        [gradientLayer setLocations:@[@0,@1]];                [gradientLayer setStartPoint:CGPointMake(0.5, 0)];                [gradientLayer setEndPoint:CGPointMake(0.5, 1)];    }else if (kind == GradientLayerKindLeftRight){        [gradientLayer setLocations:@[@0,@1]];                [gradientLayer setStartPoint:CGPointMake(0, 0.5)];                [gradientLayer setEndPoint:CGPointMake(1, 0.5)];    }else if (kind == GradientLayerKindLTRB){        [gradientLayer setLocations:@[@0,@1]];                [gradientLayer setStartPoint:CGPointMake(0, 0)];                [gradientLayer setEndPoint:CGPointMake(1, 1)];    }else if (kind == GradientLayerKindLBRT){        [gradientLayer setLocations:@[@0,@1]];                [gradientLayer setStartPoint:CGPointMake(0, 1)];                [gradientLayer setEndPoint:CGPointMake(1, 0)];    }        return gradientLayer; }使用:viewcontroller的viewdidload中    for (int i = 0; i < 4; i++) {        NSInteger hang = i%2,lie=i/2;        CGFloat w=self.view.frame.size.width/2.0,h=(self.view.frame.size.height-64)/2.0;        CGRect frame = CGRectMake(hang*w, lie*h, w, h);        [self.view.layer addSublayer:[self ct_getGradientLayerWithFrame:frame StartColor:[self rgb:0 g:0 b:0 a:0.9] endColor:[self rgb:255 g:255 b:255 a:0.1] andKind:i+2000]];     }設定顏色方法:-(UIColor*)rgb:(NSInteger)r g:(NSInteger)g b:(NSInteger)b a:(CGFloat)alpha{    return [UIColor colorWithRed:r%256/256.0 green:g%256/256.0 blue:b%256/256.0 alpha:alpha]; }:(可以發現圖層下的label和按鈕都可以顯示,並且按鈕的點擊事件正常響應)

IOS 建立漸層圖層

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.