最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

實(shí)例講解iOS應(yīng)用UI開發(fā)之基礎(chǔ)動(dòng)畫的創(chuàng)建

 更新時(shí)間:2015年11月17日 09:39:21   作者:文頂頂  
這篇文章主要介紹了iOS應(yīng)用UI開發(fā)之基礎(chǔ)動(dòng)畫的創(chuàng)建,以關(guān)鍵幀動(dòng)畫作為重要知識(shí)點(diǎn)進(jìn)行講解,需要的朋友可以參考下

一、簡單介紹

CAPropertyAnimation的子類

屬性解析:

fromValue:keyPath相應(yīng)屬性的初始值

toValue:keyPath相應(yīng)屬性的結(jié)束值

隨著動(dòng)畫的進(jìn)行,在長度為duration的持續(xù)時(shí)間內(nèi),keyPath相應(yīng)屬性的值從fromValue漸漸地變?yōu)閠oValue

如果fillMode=kCAFillModeForwards和removedOnComletion=NO,那么在動(dòng)畫執(zhí)行完畢后,圖層會(huì)保持顯示動(dòng)畫執(zhí)行后的狀態(tài)。但在實(shí)質(zhì)上,圖層的屬性值還是動(dòng)畫執(zhí)行前的初始值,并沒有真正被改變。

比如,CALayer的position初始值為(0,0),CABasicAnimation的fromValue為(10,10),toValue為(100,100),雖然動(dòng)畫執(zhí)行完畢后圖層保持在(100,100)這個(gè)位置,實(shí)質(zhì)上圖層的position還是為(0,0)

 

二、平移動(dòng)畫

代碼示例:

復(fù)制代碼 代碼如下:

//
//  YYViewController.m
//  07-核心動(dòng)畫(基礎(chǔ)動(dòng)畫)
//
//  Created by apple on 14-6-21.
//  Copyright (c) 2014年 itcase. All rights reserved.
//

#import "YYViewController.h"

@interface YYViewController ()
@property(nonatomic,strong)CALayer *myLayer;
@end


復(fù)制代碼 代碼如下:

@implementation YYViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
   
    //創(chuàng)建layer
    CALayer *myLayer=[CALayer layer];
    //設(shè)置layer的屬性
    myLayer.bounds=CGRectMake(0, 0, 50, 80);
    myLayer.backgroundColor=[UIColor yellowColor].CGColor;
    myLayer.position=CGPointMake(50, 50);
    myLayer.anchorPoint=CGPointMake(0, 0);
    myLayer.cornerRadius=20;
    //添加layer
    [self.view.layer addSublayer:myLayer];
    self.myLayer=myLayer;
}

//設(shè)置動(dòng)畫(基礎(chǔ)動(dòng)畫)
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    //1.創(chuàng)建核心動(dòng)畫
    //    CABasicAnimation *anima=[CABasicAnimation animationWithKeyPath:<#(NSString *)#>]
    CABasicAnimation *anima=[CABasicAnimation animation];
   
    //1.1告訴系統(tǒng)要執(zhí)行什么樣的動(dòng)畫
    anima.keyPath=@"position";
    //設(shè)置通過動(dòng)畫,將layer從哪兒移動(dòng)到哪兒
    anima.fromValue=[NSValue valueWithCGPoint:CGPointMake(0, 0)];
    anima.toValue=[NSValue valueWithCGPoint:CGPointMake(200, 300)];
   
    //1.2設(shè)置動(dòng)畫執(zhí)行完畢之后不刪除動(dòng)畫
    anima.removedOnCompletion=NO;
    //1.3設(shè)置保存動(dòng)畫的最新狀態(tài)
    anima.fillMode=kCAFillModeForwards;

    //2.添加核心動(dòng)畫到layer
    [self.myLayer addAnimation:anima forKey:nil];

}
  @end


代碼說明:

 第42行設(shè)置的keyPath是@"position",說明要修改的是CALayer的position屬性,也就是會(huì)執(zhí)行平移動(dòng)畫

 第44,45行,這里的屬性接收的時(shí)id類型的參數(shù),因此并不能直接使用CGPoint這種結(jié)構(gòu)體類型,而是要先包裝成NSValue對(duì)象后再使用。

 默認(rèn)情況下,動(dòng)畫執(zhí)行完畢后,動(dòng)畫會(huì)自動(dòng)從CALayer上移除,CALayer又會(huì)回到原來的狀態(tài)。為了保持動(dòng)畫執(zhí)行后的狀態(tài),可以加入第48,50行代碼

byValue和toValue的區(qū)別,前者是在當(dāng)前的位置上增加多少,后者是到指定的位置。
 

執(zhí)行效果:

2015111793321414.png (348×532)

設(shè)置代理:設(shè)置動(dòng)畫的代理,可以監(jiān)聽動(dòng)畫的執(zhí)行過程,這里設(shè)置控制器為代理。

代碼示例:

復(fù)制代碼 代碼如下:

#import "YYViewController.h"

@interface YYViewController ()
@property(nonatomic,strong)CALayer *myLayer;
@end

@implementation YYViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
   
    //創(chuàng)建layer
    CALayer *myLayer=[CALayer layer];
    //設(shè)置layer的屬性
    myLayer.bounds=CGRectMake(0, 0, 50, 80);
    myLayer.backgroundColor=[UIColor yellowColor].CGColor;
    myLayer.position=CGPointMake(50, 50);
    myLayer.anchorPoint=CGPointMake(0, 0);
    myLayer.cornerRadius=20;
    //添加layer
    [self.view.layer addSublayer:myLayer];
    self.myLayer=myLayer;
}

//設(shè)置動(dòng)畫(基礎(chǔ)動(dòng)畫)
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    //1.創(chuàng)建核心動(dòng)畫
    //    CABasicAnimation *anima=[CABasicAnimation animationWithKeyPath:<#(NSString *)#>]
    CABasicAnimation *anima=[CABasicAnimation animation];
   
    //1.1告訴系統(tǒng)要執(zhí)行什么樣的動(dòng)畫
    anima.keyPath=@"position";
    //設(shè)置通過動(dòng)畫,將layer從哪兒移動(dòng)到哪兒
    anima.fromValue=[NSValue valueWithCGPoint:CGPointMake(0, 0)];
    anima.toValue=[NSValue valueWithCGPoint:CGPointMake(200, 300)];
   
    //1.2設(shè)置動(dòng)畫執(zhí)行完畢之后不刪除動(dòng)畫
    anima.removedOnCompletion=NO;
    //1.3設(shè)置保存動(dòng)畫的最新狀態(tài)
    anima.fillMode=kCAFillModeForwards;
    anima.delegate=self;
    //打印
    NSString *str=NSStringFromCGPoint(self.myLayer.position);
    NSLog(@"執(zhí)行前:%@",str);
    
    //2.添加核心動(dòng)畫到layer
    [self.myLayer addAnimation:anima forKey:nil];

}

-(void)animationDidStart:(CAAnimation *)anim
{
    NSLog(@"開始執(zhí)行動(dòng)畫");
}

-(void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag
{
    //動(dòng)畫執(zhí)行完畢,打印執(zhí)行完畢后的position值
    NSString *str=NSStringFromCGPoint(self.myLayer.position);
    NSLog(@"執(zhí)行后:%@",str);
}

@end


打印position的屬性值,驗(yàn)證圖層的屬性值還是動(dòng)畫執(zhí)行前的初始值{50,50},并沒有真正被改變?yōu)閧200,300}。

2015111793357095.png (877×105)

三、縮放動(dòng)畫

實(shí)現(xiàn)縮放動(dòng)畫的代碼示例:

復(fù)制代碼 代碼如下:

//
//  YYViewController.m
//  08-核心動(dòng)畫平移
//
//  Created by apple on 14-6-21.
//  Copyright (c) 2014年 itcase. All rights reserved.
//

#import "YYViewController.h"

@interface YYViewController ()
@property(nonatomic,strong)CALayer *myLayer;
@end


復(fù)制代碼 代碼如下:

@implementation YYViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
   
    //創(chuàng)建layer
    CALayer *myLayer=[CALayer layer];
    //設(shè)置layer的屬性
    myLayer.bounds=CGRectMake(0, 0, 150, 60);
    myLayer.backgroundColor=[UIColor yellowColor].CGColor;
    myLayer.position=CGPointMake(50, 50);
    myLayer.anchorPoint=CGPointMake(0, 0);
    myLayer.cornerRadius=40;
    //添加layer
    [self.view.layer addSublayer:myLayer];
    self.myLayer=myLayer;
}

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    //1.創(chuàng)建動(dòng)畫
    CABasicAnimation *anima=[CABasicAnimation animationWithKeyPath:@"bounds"];
    //1.1設(shè)置動(dòng)畫執(zhí)行時(shí)間
    anima.duration=2.0;
    //1.2設(shè)置動(dòng)畫執(zhí)行完畢后不刪除動(dòng)畫
    anima.removedOnCompletion=NO;
    //1.3設(shè)置保存動(dòng)畫的最新狀態(tài)
    anima.fillMode=kCAFillModeForwards;
    //1.4修改屬性,執(zhí)行動(dòng)畫
    anima.toValue=[NSValue valueWithCGRect:CGRectMake(0, 0, 200, 200)];
    //2.添加動(dòng)畫到layer
    [self.myLayer addAnimation:anima forKey:nil];
}

@end


實(shí)現(xiàn)效果:

2015111793435216.png (348×532)

四、旋轉(zhuǎn)動(dòng)畫

代碼示例:

復(fù)制代碼 代碼如下:

//
//  YYViewController.m
//  09-核心動(dòng)畫旋轉(zhuǎn)
//
//  Created by apple on 14-6-21.
//  Copyright (c) 2014年 itcase. All rights reserved.
//

#import "YYViewController.h"

@interface YYViewController ()
@property(nonatomic,strong)CALayer *myLayer;
@end


復(fù)制代碼 代碼如下:

@implementation YYViewController
- (void)viewDidLoad
{
    [super viewDidLoad];
   
    //創(chuàng)建layer
    CALayer *myLayer=[CALayer layer];
    //設(shè)置layer的屬性
    myLayer.bounds=CGRectMake(0, 0, 150, 60);
    myLayer.backgroundColor=[UIColor yellowColor].CGColor;
    myLayer.position=CGPointMake(50, 50);
    myLayer.anchorPoint=CGPointMake(0, 0);
    myLayer.cornerRadius=40;
    //添加layer
    [self.view.layer addSublayer:myLayer];
    self.myLayer=myLayer;
}

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    //1.創(chuàng)建動(dòng)畫
    CABasicAnimation *anima=[CABasicAnimation animationWithKeyPath:@"transform"];
    //1.1設(shè)置動(dòng)畫執(zhí)行時(shí)間
    anima.duration=2.0;
    //1.2修改屬性,執(zhí)行動(dòng)畫
    anima.toValue=[NSValue valueWithCATransform3D:CATransform3DMakeRotation(M_PI_2+M_PI_4, 1, 1, 0)];
    //1.3設(shè)置動(dòng)畫執(zhí)行完畢后不刪除動(dòng)畫
    anima.removedOnCompletion=NO;
    //1.4設(shè)置保存動(dòng)畫的最新狀態(tài)
    anima.fillMode=kCAFillModeForwards;
   
    //2.添加動(dòng)畫到layer
    [self.myLayer addAnimation:anima forKey:nil];
}
@end


實(shí)現(xiàn)效果:

2015111793457814.png (348×532)

補(bǔ)充:

可以通過transform(KVC)的方式來進(jìn)行設(shè)置。

代碼示例(平移):

復(fù)制代碼 代碼如下:

#import "YYViewController.h"

@interface YYViewController ()
@property(nonatomic,strong)CALayer *myLayer;
@end


復(fù)制代碼 代碼如下:

@implementation YYViewController
- (void)viewDidLoad
{
    [super viewDidLoad];
   
    //創(chuàng)建layer
    CALayer *myLayer=[CALayer layer];
    //設(shè)置layer的屬性
    myLayer.bounds=CGRectMake(0, 0, 150, 60);
    myLayer.backgroundColor=[UIColor yellowColor].CGColor;
    myLayer.position=CGPointMake(50, 50);
    myLayer.anchorPoint=CGPointMake(0, 0);
    myLayer.cornerRadius=40;
    //添加layer
    [self.view.layer addSublayer:myLayer];
    self.myLayer=myLayer;
}

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    //1.創(chuàng)建動(dòng)畫
    CABasicAnimation *anima=[CABasicAnimation animation];
    anima.keyPath=@"transform";
    //1.1設(shè)置動(dòng)畫執(zhí)行時(shí)間
    anima.duration=2.0;
    //1.2修改屬性,執(zhí)行動(dòng)畫
 
    anima.toValue=[NSValue valueWithCATransform3D:CATransform3DMakeTranslation(0, 100, 1)];
    //1.3設(shè)置動(dòng)畫執(zhí)行完畢后不刪除動(dòng)畫
    anima.removedOnCompletion=NO;
    //1.4設(shè)置保存動(dòng)畫的最新狀態(tài)
    anima.fillMode=kCAFillModeForwards;
   
    //2.添加動(dòng)畫到layer
    [self.myLayer addAnimation:anima forKey:nil];
}


實(shí)現(xiàn)效果:

繪制的圖形在y的方向上移動(dòng)100個(gè)單位。

2015111793535791.png (348×532)

五、關(guān)鍵幀動(dòng)畫

1.簡單介紹

是CApropertyAnimation的子類,跟CABasicAnimation的區(qū)別是:CABasicAnimation只能從一個(gè)數(shù)值(fromValue)變到另一個(gè)數(shù)值(toValue),而CAKeyframeAnimation會(huì)使用一個(gè)NSArray保存這些數(shù)值

屬性解析:

values:就是上述的NSArray對(duì)象。里面的元素稱為”關(guān)鍵幀”(keyframe)。動(dòng)畫對(duì)象會(huì)在指定的時(shí)間(duration)內(nèi),依次顯示values數(shù)組中的每一個(gè)關(guān)鍵幀

path:可以設(shè)置一個(gè)CGPathRef\CGMutablePathRef,讓層跟著路徑移動(dòng)。path只對(duì)CALayer的anchorPoint和position起作用。如果你設(shè)置了path,那么values將被忽略

keyTimes:可以為對(duì)應(yīng)的關(guān)鍵幀指定對(duì)應(yīng)的時(shí)間點(diǎn),其取值范圍為0到1.0,keyTimes中的每一個(gè)時(shí)間值都對(duì)應(yīng)values中的每一幀.當(dāng)keyTimes沒有設(shè)置的時(shí)候,各個(gè)關(guān)鍵幀的時(shí)間是平分的

說明:CABasicAnimation可看做是最多只有2個(gè)關(guān)鍵幀的CAKeyframeAnimation

2.代碼示例

第一種方式:

代碼:

復(fù)制代碼 代碼如下:

//
//  YYViewController.m
//  10-核心動(dòng)畫(關(guān)鍵幀動(dòng)畫1)
//
//  Created by apple on 14-6-21.
//  Copyright (c) 2014年 itcase. All rights reserved.
//

#import "YYViewController.h"

@interface YYViewController ()
@property (weak, nonatomic) IBOutlet UIView *customView;

@end


復(fù)制代碼 代碼如下:

@implementation YYViewController


-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    //1.創(chuàng)建核心動(dòng)畫
    CAKeyframeAnimation *keyAnima=[CAKeyframeAnimation animation];
    //平移
    keyAnima.keyPath=@"position";
    //1.1告訴系統(tǒng)要執(zhí)行什么動(dòng)畫
    NSValue *value1=[NSValue valueWithCGPoint:CGPointMake(100, 100)];
    NSValue *value2=[NSValue valueWithCGPoint:CGPointMake(200, 100)];
    NSValue *value3=[NSValue valueWithCGPoint:CGPointMake(200, 200)];
    NSValue *value4=[NSValue valueWithCGPoint:CGPointMake(100, 200)];
    NSValue *value5=[NSValue valueWithCGPoint:CGPointMake(100, 100)];
    keyAnima.values=@[value1,value2,value3,value4,value5];
    //1.2設(shè)置動(dòng)畫執(zhí)行完畢后,不刪除動(dòng)畫
    keyAnima.removedOnCompletion=NO;
    //1.3設(shè)置保存動(dòng)畫的最新狀態(tài)
    keyAnima.fillMode=kCAFillModeForwards;
    //1.4設(shè)置動(dòng)畫執(zhí)行的時(shí)間
    keyAnima.duration=4.0;
    //1.5設(shè)置動(dòng)畫的節(jié)奏
    keyAnima.timingFunction=[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
   
    //設(shè)置代理,開始—結(jié)束
    keyAnima.delegate=self;
    //2.添加核心動(dòng)畫
    [self.customView.layer addAnimation:keyAnima forKey:nil];
}

-(void)animationDidStart:(CAAnimation *)anim
{
    NSLog(@"開始動(dòng)畫");
}

-(void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag
{
    NSLog(@"結(jié)束動(dòng)畫");
}
@end


說明:這個(gè)項(xiàng)目在storyboard中拖入了一個(gè)view,并和控制器中的custom進(jìn)行了關(guān)聯(lián)。

效果和打印結(jié)果:

2015111793612382.png (996×372)

補(bǔ)充:設(shè)置動(dòng)畫的節(jié)奏

2015111793633341.png (591×323)

第二種方式(使用path)讓layer在指定的路徑上移動(dòng)(畫圓):

代碼:

復(fù)制代碼 代碼如下:

#import "YYViewController.h"

@interface YYViewController ()
@property (weak, nonatomic) IBOutlet UIView *customView;

@end


復(fù)制代碼 代碼如下:

@implementation YYViewController


-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    //1.創(chuàng)建核心動(dòng)畫
    CAKeyframeAnimation *keyAnima=[CAKeyframeAnimation animation];
    //平移
    keyAnima.keyPath=@"position";
    //1.1告訴系統(tǒng)要執(zhí)行什么動(dòng)畫
    //創(chuàng)建一條路徑
    CGMutablePathRef path=CGPathCreateMutable();
    //設(shè)置一個(gè)圓的路徑
    CGPathAddEllipseInRect(path, NULL, CGRectMake(150, 100, 100, 100));
    keyAnima.path=path;
   
    //有create就一定要有release
    CGPathRelease(path);
    //1.2設(shè)置動(dòng)畫執(zhí)行完畢后,不刪除動(dòng)畫
    keyAnima.removedOnCompletion=NO;
    //1.3設(shè)置保存動(dòng)畫的最新狀態(tài)
    keyAnima.fillMode=kCAFillModeForwards;
    //1.4設(shè)置動(dòng)畫執(zhí)行的時(shí)間
    keyAnima.duration=5.0;
    //1.5設(shè)置動(dòng)畫的節(jié)奏
    keyAnima.timingFunction=[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
   
    //設(shè)置代理,開始—結(jié)束
    keyAnima.delegate=self;
    //2.添加核心動(dòng)畫
    [self.customView.layer addAnimation:keyAnima forKey:nil];
}

-(void)animationDidStart:(CAAnimation *)anim
{
    NSLog(@"開始動(dòng)畫");
}

-(void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag
{
    NSLog(@"結(jié)束動(dòng)畫");
}
@end


說明:可以通過path屬性,讓layer在指定的軌跡上運(yùn)動(dòng)。

停止動(dòng)畫:

復(fù)制代碼 代碼如下:

#import "YYViewController.h"

@interface YYViewController ()
@property (weak, nonatomic) IBOutlet UIView *customView;
- (IBAction)stopOnClick:(UIButton *)sender;

@end


復(fù)制代碼 代碼如下:

@implementation YYViewController


-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    //1.創(chuàng)建核心動(dòng)畫
    CAKeyframeAnimation *keyAnima=[CAKeyframeAnimation animation];
    //平移
    keyAnima.keyPath=@"position";
    //1.1告訴系統(tǒng)要執(zhí)行什么動(dòng)畫
    //創(chuàng)建一條路徑
    CGMutablePathRef path=CGPathCreateMutable();
    //設(shè)置一個(gè)圓的路徑
    CGPathAddEllipseInRect(path, NULL, CGRectMake(150, 100, 100, 100));
    keyAnima.path=path;
   
    //有create就一定要有release
    CGPathRelease(path);
    //1.2設(shè)置動(dòng)畫執(zhí)行完畢后,不刪除動(dòng)畫
    keyAnima.removedOnCompletion=NO;
    //1.3設(shè)置保存動(dòng)畫的最新狀態(tài)
    keyAnima.fillMode=kCAFillModeForwards;
    //1.4設(shè)置動(dòng)畫執(zhí)行的時(shí)間
    keyAnima.duration=5.0;
    //1.5設(shè)置動(dòng)畫的節(jié)奏
    keyAnima.timingFunction=[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
   
    //2.添加核心動(dòng)畫
    [self.customView.layer addAnimation:keyAnima forKey:@"wendingding"];
}

- (IBAction)stopOnClick:(UIButton *)sender {
    //停止self.customView.layer上名稱標(biāo)示為wendingding的動(dòng)畫
    [self.customView.layer removeAnimationForKey:@"wendingding"];
}
@end


2015111793655932.png (434×616)

點(diǎn)擊停止動(dòng)畫,程序內(nèi)部會(huì)調(diào)用  [self.customView.layer removeAnimationForKey:@"wendingding"];停止self.customView.layer上名稱標(biāo)示為wendingding的動(dòng)畫。

3.圖標(biāo)抖動(dòng)

代碼示例:

復(fù)制代碼 代碼如下:

//
//  YYViewController.m
//  12-圖標(biāo)抖動(dòng)
//
//  Created by apple on 14-6-21.
//  Copyright (c) 2014年 itcase. All rights reserved.
//

#import "YYViewController.h"
#define angle2Radian(angle)  ((angle)/180.0*M_PI)

@interface YYViewController ()
@property (weak, nonatomic) IBOutlet UIImageView *iconView;

@end


復(fù)制代碼 代碼如下:

@implementation YYViewController

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    //1.創(chuàng)建核心動(dòng)畫
    CAKeyframeAnimation *keyAnima=[CAKeyframeAnimation animation];
    keyAnima.keyPath=@"transform.rotation";
    //設(shè)置動(dòng)畫時(shí)間
    keyAnima.duration=0.1;
    //設(shè)置圖標(biāo)抖動(dòng)弧度
    //把度數(shù)轉(zhuǎn)換為弧度  度數(shù)/180*M_PI
    keyAnima.values=@[@(-angle2Radian(4)),@(angle2Radian(4)),@(-angle2Radian(4))];
    //設(shè)置動(dòng)畫的重復(fù)次數(shù)(設(shè)置為最大值)
    keyAnima.repeatCount=MAXFLOAT;
   
    keyAnima.fillMode=kCAFillModeForwards;
    keyAnima.removedOnCompletion=NO;
    //2.添加動(dòng)畫
    [self.iconView.layer addAnimation:keyAnima forKey:nil];
}

@end


說明:圖標(biāo)向左向右偏轉(zhuǎn)一個(gè)弧度(4),產(chǎn)生抖動(dòng)的視覺效果。

程序界面:
2015111793717112.png (348×532) 

相關(guān)文章

  • fastlane自動(dòng)化打包iOS APP過程示例

    fastlane自動(dòng)化打包iOS APP過程示例

    這篇文章主要為大家介紹了fastlane自動(dòng)化打包iOS APP的過程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • iOS中利用CAGradientLayer繪制漸變色的方法實(shí)例

    iOS中利用CAGradientLayer繪制漸變色的方法實(shí)例

    有時(shí)候iOS開發(fā)中需要使用到漸變色,來給圖片或者view蓋上一層,使其顯示效果更好,所以這篇文章主要給大家介紹了關(guān)于iOS中利用CAGradientLayer繪制漸變色的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。
    2017-11-11
  • iOS開發(fā)網(wǎng)絡(luò)編程之?dāng)帱c(diǎn)續(xù)傳

    iOS開發(fā)網(wǎng)絡(luò)編程之?dāng)帱c(diǎn)續(xù)傳

    在下載較大的文件的時(shí)候,一次不能下載完畢,這就需要用到斷點(diǎn)續(xù)傳,那么在IOS開發(fā)中該如何實(shí)現(xiàn)呢,下面跟著小編一起通過本文來學(xué)習(xí)下。
    2016-08-08
  • iOS實(shí)現(xiàn)輪播圖banner示例

    iOS實(shí)現(xiàn)輪播圖banner示例

    本篇文章主要介紹了iOS實(shí)現(xiàn)輪播圖banner示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-01-01
  • IOS UI學(xué)習(xí)教程之使用代碼創(chuàng)建button

    IOS UI學(xué)習(xí)教程之使用代碼創(chuàng)建button

    這篇文章主要為大家詳細(xì)介紹了IOS UI學(xué)習(xí)教程之使用代碼創(chuàng)建button,感興趣的小伙伴們可以參考一下
    2016-03-03
  • IOS提醒用戶重新授權(quán)打開定位功能

    IOS提醒用戶重新授權(quán)打開定位功能

    這篇文章主要介紹了IOS提醒用戶重新授權(quán)打開定位功能的相關(guān)資料,需要的朋友可以參考下
    2015-12-12
  • 如何在IOS中使用IBeacon

    如何在IOS中使用IBeacon

    這篇文章主要介紹了如何在IOS中使用IBeacon,想了解IBeacon的同學(xué),一定要看一下
    2021-04-04
  • 兩種iOS調(diào)用系統(tǒng)發(fā)短信的方法

    兩種iOS調(diào)用系統(tǒng)發(fā)短信的方法

    iOS調(diào)用系統(tǒng)的發(fā)短信功能可以分為兩種:1,程序外調(diào)用系統(tǒng)發(fā)短信。2,程序內(nèi)調(diào)用系統(tǒng)發(fā)短信。第二種的好處是用戶發(fā)短信之后還可以回到app。這對(duì)app來說非常重要。
    2016-07-07
  • Xcode使用教程詳細(xì)講解(全)

    Xcode使用教程詳細(xì)講解(全)

    本文介紹的是Xcode使用教程詳細(xì)講解,Xcode是一個(gè)款強(qiáng)大的IDE開發(fā)環(huán)境,就像你在寫Windows程序時(shí)需要VS2005一樣 需要要Xcode為你寫Mac程序提供環(huán)境
    2015-07-07
  • iOS masonry的使用方法

    iOS masonry的使用方法

    這篇文章主要介紹了iOS masonry的基本使用方法的相關(guān)資料,文章還介紹了CocoaPods的安裝過程,需要的朋友可以參考下面文字內(nèi)容
    2021-09-09

最新評(píng)論

合水县| 远安县| 漳州市| 板桥市| 辉县市| 汨罗市| 新龙县| 福清市| 将乐县| 德庆县| 全州县| 宜章县| 灌南县| 唐山市| 固阳县| 南溪县| 苏州市| 洛南县| 丘北县| 中方县| 武乡县| 蓝田县| 岑溪市| 恭城| 石林| 广昌县| 伽师县| 镇江市| 石阡县| 蓬莱市| 墨脱县| 金湖县| 泗水县| 洛川县| 科技| 日照市| 萨嘎县| 苏尼特左旗| 崇阳县| 波密县| 青龙|