iOS實現動態元素的引導圖效果_IOS

來源:互聯網
上載者:User

前言

最近越來越多的APP,已經拋棄掉第一次進入的3-4頁的匯入頁面,而是另外採取了在功能頁面懸浮一個動態效果來展示相應的功能點。這個模組主要是實現app首次進入時顯示的動態引導圖,在使用者進行右滑或者左滑的時候,螢幕上的一些元素做出相應的隱藏消失以及位置移動。

實現效果:


圖片資源來自網路,侵權即刪

先來看看是如何使用的,然後再介紹相關的方法及屬性

NSMutableArray * elementsDataArr = [[NSMutableArray alloc] init];/* 動畫元素的建立 */LMJAnimatedElement * element1 = [[LMJAnimatedElement alloc] initWithImage:[UIImage imageNamed:@"umbrella"]];element1.belongToScreen = 0;      // 設定所屬第幾屏element1.size    = CGSizeMake(64, 64); // 元素大小element1.startPoint  = CGPointMake(130, 420); // 元素在螢幕的起始點位置element1.endPoint   = CGPointMake(130, 420); // 元素在螢幕的終點位置element1.isGradient  = NO;     // 是否淡入淡出[elementsDataArr addObject:element1];LMJAnimatedElement * element2 = [[LMJAnimatedElement alloc] initWithImage:[UIImage imageNamed:@"cocktail"]];element2.belongToScreen = 1;element2.size    = CGSizeMake(64, 64);element2.startPoint  = CGPointMake(40, 350);element2.endPoint   = CGPointMake(40, 480);element2.isGradient  = YES;[elementsDataArr addObject:element2];LMJAnimatedElement * element3 = [[LMJAnimatedElement alloc] initWithImage:[UIImage imageNamed:@"flip_flops"]];element3.belongToScreen = 2;element3.size    = CGSizeMake(64, 64);element3.startPoint  = CGPointMake(-70, 500);element3.endPoint   = CGPointMake(190, 470);element3.isGradient  = YES;[elementsDataArr addObject:element3];LMJAnimatedElement * element4 = [[LMJAnimatedElement alloc] initWithImage:[UIImage imageNamed:@"surfboard"]];element4.belongToScreen = 3;element4.size    = CGSizeMake(96, 96);element4.startPoint  = CGPointMake(300, 440);element4.endPoint   = CGPointMake(40, 440);element4.isGradient  = NO;[elementsDataArr addObject:element4];LMJAnimatedElement * element5 = [[LMJAnimatedElement alloc] initWithImage:[UIImage imageNamed:@"beach_chair"]];element5.belongToScreen = 4;element5.size    = CGSizeMake(64, 64);element5.startPoint  = CGPointMake(320, 440);element5.endPoint   = CGPointMake(220, 440);element5.isGradient  = YES;[elementsDataArr addObject:element5];/* 模組的實現 */_welcomeView = [[LMJDynamicWelcomeView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.height, [UIScreen mainScreen].bounds.size.height)];// 設定動畫元素[_welcomeView setAnimatedItems:elementsDataArr];// 設定背景圖片,以及背景圖片的尺寸,當圖片尺寸超過螢幕寬度時,會自動計算背景圖每屏的位移量,以致滑到最後一屏的時候,背景圖移到最右端[_welcomeView setBackgroundImage:[UIImage imageNamed:@"beach_bg.png"] size:CGSizeMake(_welcomeView.frame.size.height/620.f*992.f, _welcomeView.frame.size.height)];// 設定滑動屏數[_welcomeView setAnimatedPageCount:5];[self.view addSubview:_welcomeView];

首先來看元素類,也就是在引導圖上移動的元素 (LMJAnimatedElement)

- (LMJAnimatedElement *)initWithImage:(UIImage *)image;// - (LMJAnimatedElement *)initWithText:(NSString *)text; // 該功能尚未實現,敬請期待...@property (nonatomic,assign) NSInteger belongToScreen; // 屬於第幾屏 (取值範圍:0~...)@property (nonatomic,assign) CGSize size; // 元素大小@property (nonatomic,assign) CGPoint startPoint; // 動畫起點@property (nonatomic,assign) CGPoint endPoint; // 動畫終點@property (nonatomic,assign) BOOL isGradient; // 是否有漸層效果 當設定為YES時,動畫元素只有在所屬頁跟隨動畫出現;當設定為NO時,動畫元素會一直在螢幕顯示,只在其所屬頁移動@property (nonatomic,strong) UIView * elementView; // 元素容器

再來看一下該模組的方法(LMJDynamicWelcomeView)

/* 設定所有動畫元素 */- (void)setAnimatedItems:(NSArray<LMJAnimatedElement *> *)items;/* 設定引導圖滑動的屏數 */- (void)setAnimatedPageCount:(NSInteger)count;/* 設定背景圖以及背景圖的大小 */- (void)setBackgroundImage:(UIImage *)image size:(CGSize)size;

總結

以上就是這篇文章的全部內容了,希望能對各位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.