iOS実装ブートページは簡単です
4737 ワード
前言:初めてアプリをインストールしたり、アプリを更新したりするとき、よくガイド画面が出てきます.昨日の夜、少し時間をかけて、ガイドページを書きましたが、遅すぎて出てこなかったので、ガイドページを実現するのは難しくありません.コードを見てください.Demoをダウンロードしてパッケージ化されたツール類があります.Star Thanks
効果図
効果図
ブートページは、実際には単一のコントローラであるUIレイアウトです.
GNU C詳細は参照リンクをご覧くださいこれは参考資料のトップページです私をスキップしないでください&クリックしてボタンの実現方法に入ります
バージョン番号処理、アプリケーションの更新を実現するためにブートページまたは最初のインストールが表示されます.
バージョン情報の保存方法
PageControl追従移動
どのように使いますか?
実装プロトコルメソッド
长すぎるとアニメーションコードが贴られなくなります.転场アニメーションはどのように书きますか.Demoを见てください.
これらに興味があるかもしれませんが、私に注目してください.ついでにいいねを押して、一緒に勉強してください.私のホームページを見て、私が作った交流グループに参加することもできます.全面的なSwift学習資料の整理--
Swiftバージョンはネット易雲音楽をまねて音楽のアニメーションの効果を放送します--
3分でコードをGithubに管理します
Swiftは強力なグラフライブラリ-Chartsで使用されています.
Swift版はAppをまねて宝を洗うAppを洗ってとても友好的にview効果を弾きます--
iOS仿美团外卖お腹すいた?App注文アニメ--
iOSエミュレートアプリに矢印付きviewを追加--
---------------------------------------
求初音ミク的片尾曲《君をのせて》的罗马拼音,谢谢!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
効果図
効果図
ブートページは、実際には単一のコントローラであるUIレイアウトです.
- (void)guidePageControllerWithImages:(NSArray *)images
{
UIScrollView *gui = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, s_w, s_h)];
gui.delegate = self;
gui.pagingEnabled = YES;
//
gui.showsHorizontalScrollIndicator = NO;
gui.showsVerticalScrollIndicator = NO;
//
gui.bounces = NO;
for (NSInteger i = 0; i < images.count; i ++) {
[gui addSubview:({
self.btnEnter = [UIButton buttonWithType:UIButtonTypeCustom];
self.btnEnter.frame = CGRectMake(s_w * i, 0, s_w, s_h);
[self.btnEnter setImage:[UIImage imageNamed:images[i]] forState:UIControlStateNormal];;
self.btnEnter;
})];
[self.btnEnter addSubview:({
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[btn setTitle:@" " forState:UIControlStateNormal];
if (i == images.count - 1) {
[btn setTitle:@" " forState:UIControlStateNormal];
}
btn.frame = CGRectMake(s_w * i, s_h - 50, 100, 30);
btn.center = CGPointMake(s_w / 2, s_h - 60);
btn.layer.cornerRadius = 4;
btn.clipsToBounds = YES;
btn.backgroundColor = [UIColor lightGrayColor];
[btn addTarget:self action:@selector(clickEnter) forControlEvents:UIControlEventTouchUpInside];
btn;
})];
}
gui.contentSize = CGSizeMake(s_w * images.count, 0);
[self.view addSubview:gui];
// pageControl
self.pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(0, 0, s_w / 2, 30)];
self.pageControl.center = CGPointMake(s_w / 2, s_h - 95);
[self.view addSubview:self.pageControl];
self.pageControl.numberOfPages = images.count;
}
GNU C詳細は参照リンクをご覧くださいこれは参考資料のトップページです私をスキップしないでください&クリックしてボタンの実現方法に入ります
- (void)clickEnter
{
if (self.delegate != nil && [self.delegate respondsToSelector:@selector(click)]) {
[self.delegate click];
}
}
バージョン番号処理、アプリケーションの更新を実現するためにブートページまたは最初のインストールが表示されます.
+ (BOOL)isShow
{
//
NSUserDefaults *user = [NSUserDefaults standardUserDefaults];
NSString *localVersion = [user objectForKey:VERSION_INFO_CURRENT];
NSString *currentVersion =[[NSBundle mainBundle].infoDictionary objectForKey:@"CFBundleShortVersionString"];
if (localVersion == nil || ![currentVersion isEqualToString:localVersion]) {
[XTGuidePagesViewController saveCurrentVersion];
return YES;
}else
{
return NO;
}
}
バージョン情報の保存方法
//
+ (void)saveCurrentVersion
{
NSString *version =[[NSBundle mainBundle].infoDictionary objectForKey:@"CFBundleShortVersionString"];
NSUserDefaults *user = [NSUserDefaults standardUserDefaults];
[user setObject:version forKey:VERSION_INFO_CURRENT];
[user synchronize];
}
PageControl追従移動
#pragma mark - ScrollerView Delegate
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
self.pageControl.currentPage = scrollView.contentOffset.x / s_w;
}
どのように使いますか?
// info
NSArray *images = @[@"1", @"2", @"3", @"4"];
BOOL y = [XTGuidePagesViewController isShow];
if (y) {
XTGuidePagesViewController *xt = [[XTGuidePagesViewController alloc] init];
self.window.rootViewController = xt;
xt.delegate = self;
[xt guidePageControllerWithImages:images];
}else{
[self click];
}
実装プロトコルメソッド
- (void)click
{
ViewController *vc = [[ViewController alloc] init];
self.window.rootViewController = vc;
[self.window.layer transitionWithAnimType:TransitionAnimTypeRamdom subType:TransitionSubtypesFromRamdom curve:TransitionCurveRamdom duration:2.0f];
}
长すぎるとアニメーションコードが贴られなくなります.転场アニメーションはどのように书きますか.Demoを见てください.
これらに興味があるかもしれませんが、私に注目してください.ついでにいいねを押して、一緒に勉強してください.私のホームページを見て、私が作った交流グループに参加することもできます.全面的なSwift学習資料の整理--
Swiftバージョンはネット易雲音楽をまねて音楽のアニメーションの効果を放送します--
3分でコードをGithubに管理します
Swiftは強力なグラフライブラリ-Chartsで使用されています.
Swift版はAppをまねて宝を洗うAppを洗ってとても友好的にview効果を弾きます--
iOS仿美团外卖お腹すいた?App注文アニメ--
iOSエミュレートアプリに矢印付きviewを追加--
---------------------------------------
求初音ミク的片尾曲《君をのせて》的罗马拼音,谢谢!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!