iOS實(shí)現(xiàn)波浪效果
本文實(shí)例為大家分享了iOS實(shí)現(xiàn)波浪效果的具體代碼,供大家參考,具體內(nèi)容如下

代碼:
@interface ViewController ()
@property (strong, nonatomic) CADisplayLink *displayLink;
@property (strong, nonatomic) CAShapeLayer *shapeLayer;
@property (strong, nonatomic) UIBezierPath *path;
@property (strong, nonatomic) CAShapeLayer *shapeLayer2;
@property (strong, nonatomic) UIBezierPath *path2;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
_shapeLayer = [CAShapeLayer layer];
_shapeLayer.frame = CGRectMake(0, 100, 375, 150);
[self.view.layer addSublayer:_shapeLayer];
_shapeLayer2 = [CAShapeLayer layer];
_shapeLayer2.frame = CGRectMake(0, 100, 375, 150);
[self.view.layer addSublayer:_shapeLayer2];
_shapeLayer.fillColor = [[UIColor yellowColor] colorWithAlphaComponent:0.3].CGColor;
_shapeLayer2.fillColor = [[UIColor blueColor] colorWithAlphaComponent:0.3].CGColor;
_displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(drawPath)];
[_displayLink addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes];
}
- (void)drawPath {
static double i = 0;
CGFloat A = 10.f;//A振幅
CGFloat k = 0;//y軸偏移
CGFloat ω = 0.03;//角速度ω變大,則波形在X軸上收縮(波形變緊密);角速度ω變小,則波形在X軸上延展(波形變稀疏)。不等于0
CGFloat φ = 0 + i;//初相,x=0時(shí)的相位;反映在坐標(biāo)系上則為圖像的左右移動(dòng)。
//y=Asin(ωx+φ)+k
_path = [UIBezierPath bezierPath];
_path2 = [UIBezierPath bezierPath];
[_path moveToPoint:CGPointZero];
[_path2 moveToPoint:CGPointZero];
for (int i = 0; i < 376; i ++) {
CGFloat x = i;
CGFloat y = A * sin(ω*x+φ)+k;
CGFloat y2 = A * cos(ω*x+φ)+k;
[_path addLineToPoint:CGPointMake(x, y)];
[_path2 addLineToPoint:CGPointMake(x, y2)];
}
[_path addLineToPoint:CGPointMake(375, -100)];
[_path addLineToPoint:CGPointMake(0, -100)];
_path.lineWidth = 1;
_shapeLayer.path = _path.CGPath;
[_path2 addLineToPoint:CGPointMake(375, -100)];
[_path2 addLineToPoint:CGPointMake(0, -100)];
_path2.lineWidth = 1;
_shapeLayer2.path = _path2.CGPath;
i += 0.1;
if (i > M_PI * 2) {
i = 0;//防止i越界
}
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- iOS實(shí)現(xiàn)百度外賣(mài)頭像波浪的效果
- iOS毛玻璃效果的實(shí)現(xiàn)及圖片模糊效果的三種方法
- iOS開(kāi)發(fā)之路--仿網(wǎng)易抽屜效果
- IOS等待時(shí)動(dòng)畫(huà)效果的實(shí)現(xiàn)
- IOS使用UICollectionView實(shí)現(xiàn)無(wú)限輪播效果
- iOS開(kāi)發(fā)中的ViewController轉(zhuǎn)場(chǎng)切換效果實(shí)現(xiàn)簡(jiǎn)介
- IOS實(shí)現(xiàn)圓形圖片效果的兩種方法
- iOS開(kāi)發(fā)中視圖的下拉放大和上拉模糊的效果實(shí)現(xiàn)
- iOS自定義提示彈出框?qū)崿F(xiàn)類似UIAlertView的效果
相關(guān)文章
iOS開(kāi)發(fā)第三方鍵盤(pán)處理實(shí)例代碼
本篇文章主要介紹了iOS開(kāi)發(fā)第三方鍵盤(pán)處理實(shí)例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06
Observing?KVO?Key-Value基本使用原理示例詳解
這篇文章主要為大家介紹了Observing?KVO?Key-Value基本使用原理示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08
iOS統(tǒng)計(jì)工程里所有大于2000行代碼的文件方法
下面小編就為大家分享一篇iOS統(tǒng)計(jì)工程里所有大于2000行代碼的文件方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01
詳解iOS應(yīng)用使用Storyboard布局時(shí)的IBOutlet與IBAction
這篇文章主要介紹了iOS應(yīng)用使用Storyboard布局時(shí)的IBOutlet與IBAction,文中還附帶講解了為什么IBOutlet屬性是weak的,需要的朋友可以參考下2016-04-04
iOS開(kāi)發(fā)教程之登錄與訪客的邏輯實(shí)現(xiàn)
這篇文章主要給大家介紹了關(guān)于iOS開(kāi)發(fā)教程之登錄與訪客的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2018-04-04
99%?iOS開(kāi)發(fā)都不知道的KVO崩潰分析詳解
這篇文章主要為大家介紹了99%?iOS開(kāi)發(fā)都不知道的KVO崩潰分析詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01
iOS應(yīng)用腳本重簽名的實(shí)現(xiàn)方法
這篇文章主要介紹了iOS應(yīng)用腳本重簽名的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01

