欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

IOS自定義UIView

 更新時(shí)間:2017年03月07日 09:45:48   作者:這酸爽!  
本文主要介紹下存代碼的自定義UIView和能夠在storeboard中實(shí)時(shí)顯示效果的自定義UIView。下面跟著小編一起來(lái)看下吧

IOS中一般會(huì)用到幾種方式自定義UIView

1、繼承之UIView的存代碼的自定義View

2、使用xib和代碼一起使用的自定義View

3、存xib的自定義View(不需要業(yè)務(wù)處理的那種)

本文主要就介紹下存代碼的自定義UIView和能夠在storeboard中實(shí)時(shí)顯示效果的自定義UIView

先上效果圖

上面為設(shè)計(jì)界面,能夠直接顯示一個(gè)View的圓角與邊框線

上面那個(gè)圓形餅圖是用純代碼自定義的

1.實(shí)現(xiàn)在storeboard中實(shí)時(shí)顯示效果的自定義UIView

 1、創(chuàng)建MyView.h 繼承 UIView

#import <UIKit/UIKit.h>

// 設(shè)置類為可視化設(shè)計(jì)
IB_DESIGNABLE
@interface MyView : UIView

// IBInspectable 為可視化設(shè)計(jì)屬性

// 邊框?qū)挾?
@property (nonatomic,assign)IBInspectable float borderWidth;

// 邊框顏色
@property (nonatomic,retain)IBInspectable UIColor* borderColor;

// 圓角
@property (nonatomic,assign)IBInspectable float cornerRadius;
@end

這里要注意的就是上面的兩個(gè)關(guān)鍵標(biāo)簽

IB_DESIGNABLE :代表的是這個(gè)類可以在storeboard中顯示實(shí)時(shí)的效果

IBInspectable :代表把這個(gè)屬性能在storeboard中修改

2、MyView.m的實(shí)現(xiàn)

//
// MyView.m
// 01_CirProgress
//
// Created by xgao on 15/10/29.
// Copyright (c) 2015年 xgao. All rights reserved.
//
#import "MyView.h"
@implementation MyView
// 邊框?qū)挾?
- (void)setBorderWidth:(float)borderWidth{
 self.layer.borderWidth = borderWidth;
}
// 邊框顏色
- (void)setBorderColor:(UIColor *)borderColor{
 self.layer.borderColor = borderColor.CGColor;
}
// 圓角
- (void)setCornerRadius:(float)cornerRadius{
 self.layer.cornerRadius = cornerRadius;
}
@end

3、在storeboad中添加一個(gè)view,并且設(shè)置這個(gè)view的類為 我們剛才創(chuàng)建的 MyView

上圖里面的那些屬性就是我們?cè)?h文件里面加了IBInspectable關(guān)鍵字的屬性,這里就能實(shí)時(shí)修改看效果了。

2.實(shí)現(xiàn)純代碼的自定義View

1、創(chuàng)建一個(gè)繼承UIView的 MyProgress 類文件,MyProgress.h 如下:

#import <UIKit/UIKit.h>
@interface MyProgress : UIView
// 當(dāng)時(shí)進(jìn)度值
@property (nonatomic,assign) float progressValue;
@end

2、MyProgress.m 如下:

#import "MyProgress.h"
@implementation MyProgress
{
 float _proValue;
}
// 重寫初始化方法
- (id)initWithFrame:(CGRect)frame{
 self = [super initWithFrame:frame];
 if (self) {

  // 設(shè)置背影為透明色
  self.backgroundColor = [UIColor clearColor];
 }
 return self;
}
// 重設(shè)progressValue屬性
- (void)setProgressValue:(float)progressValue
{
 _progressValue = progressValue;
 // 重新畫UI
 [self setNeedsDisplay];
}
// 繪圖
- (void)drawRect:(CGRect)rect {
 // 獲取畫圖的上下文
 CGContextRef ctx = UIGraphicsGetCurrentContext();
 /**** 繪制圓形背景線 ****/
 // 圓的半徑
 float r = rect.size.width / 2.0;
 // 全圓
 CGFloat endAngle = M_PI * 2;
 // 畫圓形線
 CGContextAddArc(ctx, r, r, r, 0, endAngle, 0);
 // 背影顏色
 CGContextSetRGBFillColor(ctx, 0.7, 0.7,0.7, 1);
 // 完成繪制
 CGContextFillPath(ctx);
 /**** 繪制扇形區(qū)域 ****/
 // 計(jì)算結(jié)束角度
 endAngle = M_PI * 2 * _progressValue;
 /** 畫圓
  * 參數(shù)1:c   當(dāng)前上下文
  * 參數(shù)2:x   圓的X坐標(biāo)
  * 參數(shù)3:y   圓的Y坐標(biāo)
  * 參數(shù)4:radius  圓的半徑
  * 參數(shù)5:startAngle 開始角度
  * 參數(shù)6:endAngle 結(jié)束角度
  * 參數(shù)7:clockwise 是否逆時(shí)針
  */
 CGContextAddArc(ctx, r, r, r, 0, endAngle, 0);
 // 連成線,成弧形
 CGContextAddLineToPoint(ctx, r, r);
 // 其實(shí)就是在連接的那條線上加一個(gè)點(diǎn),讓線條連接到那一個(gè)點(diǎn),就像拉弓,可加多個(gè)點(diǎn)
// CGContextAddLineToPoint(ctx, r + 20, r + 20);
 // 填充顏色
 CGContextSetRGBFillColor(ctx, 0, 0, 1, 1);
 // 完成繪制
 CGContextFillPath(ctx);
}

3、調(diào)用自定義的MyProgress類

#import "MyProgress.h"
@interface ViewController ()
{
 MyProgress* _myProView;
}
@end
@implementation ViewController
- (void)viewDidLoad {
 [super viewDidLoad];
 // 創(chuàng)建自定義控件
 _myProView = [[MyProgress alloc]initWithFrame:CGRectMake(100, 50, 180, 180)];
 // 默認(rèn)進(jìn)度
 _myProView.progressValue = 0.2;
 [self.view addSubview:_myProView];
}

以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!

相關(guān)文章

  • ios 實(shí)現(xiàn)倒計(jì)時(shí)的兩種方式

    ios 實(shí)現(xiàn)倒計(jì)時(shí)的兩種方式

    這篇文章主要介紹了ios實(shí)現(xiàn)倒計(jì)時(shí)的兩種方式,第一種方式使用NSTimer來(lái)實(shí)現(xiàn),第二種方式使用GCD來(lái)實(shí)現(xiàn)。具體內(nèi)容詳情大家參考下本文
    2017-01-01
  • iOS實(shí)現(xiàn)Pad上菜單彈出界面

    iOS實(shí)現(xiàn)Pad上菜單彈出界面

    這篇文章主要為大家詳細(xì)介紹了iOS實(shí)現(xiàn)Pad上菜單彈出界面的相關(guān)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • IOS 開發(fā)之網(wǎng)絡(luò)圖片輪播圖的實(shí)現(xiàn)

    IOS 開發(fā)之網(wǎng)絡(luò)圖片輪播圖的實(shí)現(xiàn)

    這篇文章主要介紹了IOS 開發(fā)之網(wǎng)絡(luò)圖片輪播圖的實(shí)現(xiàn)的相關(guān)資料,希望通過(guò)此文大家能夠掌握輪播圖的實(shí)現(xiàn),需要的朋友可以參考下
    2017-09-09
  • 實(shí)例講解iOS音樂(lè)播放器DOUAudioStreamer用法

    實(shí)例講解iOS音樂(lè)播放器DOUAudioStreamer用法

    本篇文章給大家通過(guò)實(shí)例講解了iOS音樂(lè)播放器DOUAudioStreamer用法以及分享了實(shí)例代碼,一起學(xué)習(xí)參考下吧。
    2017-12-12
  • iOS動(dòng)畫-定時(shí)對(duì)UIView進(jìn)行翻轉(zhuǎn)和抖動(dòng)的方法

    iOS動(dòng)畫-定時(shí)對(duì)UIView進(jìn)行翻轉(zhuǎn)和抖動(dòng)的方法

    下面小編就為大家?guī)?lái)一篇iOS動(dòng)畫-定時(shí)對(duì)UIView進(jìn)行翻轉(zhuǎn)和抖動(dòng)的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-04-04
  • iOS中的類、元類以及isa示例詳解

    iOS中的類、元類以及isa示例詳解

    從初學(xué)OC的時(shí)候就聽人提起過(guò)OC對(duì)象中的isa指針,用來(lái)指向?qū)ο笏鶎俚念?,從而可以在調(diào)用方法時(shí)通過(guò)isa指針找到相應(yīng)的方法和屬性,下面這篇文章主要給大家介紹了關(guān)于iOS中類、元類以及isa的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • ios 貝塞爾曲線切割圓角的方法

    ios 貝塞爾曲線切割圓角的方法

    本篇文章主要介紹了ios 貝塞爾曲線切割圓角的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07
  • 基于iOS實(shí)現(xiàn)音樂(lè)震動(dòng)條效果

    基于iOS實(shí)現(xiàn)音樂(lè)震動(dòng)條效果

    這篇文章主要為大家詳細(xì)介紹了基于iOS實(shí)現(xiàn)音樂(lè)震動(dòng)條效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • iOS應(yīng)用開發(fā)中使用UIScrollView控件來(lái)實(shí)現(xiàn)圖片縮放

    iOS應(yīng)用開發(fā)中使用UIScrollView控件來(lái)實(shí)現(xiàn)圖片縮放

    這篇文章主要介紹了iOS開發(fā)中使用UIScrollView控件來(lái)實(shí)現(xiàn)圖片縮放的方法,代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下
    2015-12-12
  • iOS錄屏和截屏監(jiān)聽的實(shí)現(xiàn)代碼

    iOS錄屏和截屏監(jiān)聽的實(shí)現(xiàn)代碼

    本篇文章主要介紹了iOS錄屏和截屏監(jiān)聽的實(shí)現(xiàn)代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05

最新評(píng)論