iOS學習筆記08 簡單的四張歡迎頁面

每次第一次打開app的時候都會出現(xiàn)那種滑動式的歡迎界面粟耻,這次我就簡單的寫一個小demo來實現(xiàn)以下歡迎頁面的樣子行拢。
頁面效果簡單的如下圖

屏幕快照 2016-04-29 下午3.53.16.png

下面有四個小圓點捣郊,是隨著畫面的切換而變換。
下面就是實現(xiàn)代碼部分
首先就是在AppDelegate.m中導入#import "ViewController.h"
接下來就是寫常用的代碼

    _window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
    _window.backgroundColor = [UIColor whiteColor];
    [_window makeKeyAndVisible];
    ViewController *vc = [[ViewController alloc]init];
//    UINavigationController *na = [[UINavigationController alloc]initWithRootViewController:vc];
    _window.rootViewController = vc;

歡迎頁面主要思想是scrollview置逻,一個長度為屏寬四倍的scrollview,然后每次只展示出一個屏寬的內(nèi)容备绽,隨著手勢的滑動券坞,下一個屏寬的內(nèi)容才會出現(xiàn)出來,所以首先要添加scrollview肺素。
在ViewController.m的viewDidLoad方法中恨锚,先添加一個scrollview

    UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:self.view.bounds];
    [self.view addSubview:scrollView];

這個時候設置一下scrollview的一些基本屬性,并且要遵守響應的協(xié)議倍靡。

    <UIScrollViewDelegate>
    //設置內(nèi)容的大小
    //因為不需要豎向滾動猴伶,所以高度只要小于scrollview的高度就可以
    scrollView.contentSize = CGSizeMake(scrollView.frame.size.width * imageNames.count, 0);
    //以翻頁形式進行滾動
    scrollView.pagingEnabled = YES;
    //為了檢測滾動視圖的偏移量,引入代理
    scrollView.delegate = self;

這樣子頁面上就是有一個屏寬四倍的scrollview塌西,但是現(xiàn)在并未進行一些別的設置蜗顽,所以現(xiàn)在界面上顯示不出來什么東西。
接下來呢雨让,是吧你要展示的四張圖片丟進一個數(shù)組里面雇盖,并且把四張圖片放進UIImageView里面,將這四張圖平整的鋪開在scrollview上面栖忠,擺成一排

   NSArray *imageNames = @[@"welcome1", @"welcome2",@"welcome3",@"welcome4",];
   for (int i = 0; i < imageNames.count; i ++) {
       UIImageView *iv = [[UIImageView alloc] initWithImage:[UIImage imageNamed:imageNames[i]]];
       iv.frame = CGRectMake(i * scrollView.frame.size.width, 0, scrollView.frame.size.width, scrollView.frame.size.height);
       [scrollView addSubview:iv];
   }

這些做完呢崔挖,大致可以看到圖片了。但是圖片的橫向滾動實現(xiàn)了庵寞,不過下面得加上四個小圓點狸相,才可以相得益彰,所以這個時候需要一個UIPageControl來實現(xiàn)捐川。

    //  添加頁數(shù)控制視圖 new = alloc + init
    UIPageControl *pageControl = [UIPageControl new
                                  ];
    [self.view addSubview:pageControl];

此時脓鹃,界面上已經(jīng)添加了pageController了,注意古沥,這個pageController不可以加到scrollview上瘸右,那樣會隨著滾動消失掉娇跟。而且一般情況下,這些點都偏于下方太颤,所以暫且設置為屏幕下方60像素苞俘,并且要設置個數(shù)以及相應切換時選中的顏色等等屬性。

    //    設置常用屬性,距離屏幕下方60像素龄章。
    pageControl.frame = CGRectMake(0, self.view.frame.size.height - 60, self.view.frame.size.width, 30);
    //    設置圓點的個數(shù)
    pageControl.numberOfPages = imageNames.count;
    //    設置沒有被選中時圓點的顏色
    pageControl.pageIndicatorTintColor = [UIColor blackColor];
    //    設置選中時圓點的顏色
    pageControl.currentPageIndicatorTintColor = [UIColor redColor];
    //    關閉分頁控件的用戶交互功能
    pageControl.userInteractionEnabled = NO;
    //    設置分頁控件的tag值吃谣,以便于之后的方法調(diào)用
    pageControl.tag = 1000;

到此為止,界面的基本設置是已經(jīng)完成了做裙,接下來需要是進行在頁面滾動的時候?qū)崿F(xiàn)一些時間的方法岗憋。
而且大部分的app,在歡迎界面的第四頁都會有進入app的按鈕锚贱,或者是在右上角有叉叉按鈕仔戈,這個跟我下面做的添加按鈕的意思是一樣的,所以簡要的直接添加一個按鈕惋鸥。

    //為最后一頁添加按鈕
    UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem];
    [btn setTitle:@"點擊進入" forState:UIControlStateNormal];
    //因為是滾動視圖最后一頁杂穷,所以要添加到滾動視圖中
    [scrollView addSubview:btn];
    btn.frame = CGRectMake(0, 0, 100, 40);
    //把按鈕添加到第四頁的中心
    btn.center = CGPointMake((imageNames.count - 0.5) * scrollView.frame.size.width, scrollView.frame.size.height - 100);
    [btn addTarget:self action:@selector(click) forControlEvents:UIControlEventTouchUpInside];

這里需要注意的是按鈕的位置,因為scrollview像是一張平鋪下來的紙卦绣,而我們所看到的屏幕就像是一個小視角框耐量,我們得移動這個小框,才可以看到其他內(nèi)容滤港,所以按鈕只能添加在第四個屏寬的地方廊蜒。那樣才是正確的。
同時添加的點擊方法溅漾。click方法山叮,并且實現(xiàn)

- (void)click{
    NSLog(@"這個地方是填寫點擊事件實現(xiàn)的方法");
}

最后的最后,差不多是個重要的店添履,就是在滾動試圖發(fā)生位移的時候屁倔,進入UIScrollViewDelegate代理方法。
需要取得scrollview的偏移量暮胧,根據(jù)滾動的位置決定當前的是第幾頁锐借,并且設置分頁控制器的當前頁面.

//當滾動視圖發(fā)生位移,就會進入下方代理方法
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
    UIPageControl *pageControl = (UIPageControl *)[self.view viewWithTag:1000];
    //取得偏移量
    CGPoint point = scrollView.contentOffset;
    //根據(jù)滾動的位置來決定當前是第幾頁
    //可以用 round()  C語言方法進行 四舍五入操作
    NSInteger index = round(point.x/scrollView.frame.size.width);
    //設置分頁控制器的當前頁面
    pageControl.currentPage = index;
}

這個是地址往衷,大家可以進去下載了看一下
welcome歡迎頁面demo
現(xiàn)在還有個問題就是現(xiàn)在的demo每次都會出現(xiàn)钞翔,讓它只有第一次出現(xiàn)我還沒有研究,后續(xù)應該會補齊席舍。
此外布轿,這個demo也是我做的比較粗糙的,針對的也是像我一樣的新手,有啥問題希望大家可以指正汰扭,共同學習稠肘。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市东且,隨后出現(xiàn)的幾起案子启具,更是在濱河造成了極大的恐慌本讥,老刑警劉巖珊泳,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異拷沸,居然都是意外死亡色查,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進店門撞芍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來秧了,“玉大人,你說我怎么就攤上這事序无⊙檎保” “怎么了?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵帝嗡,是天一觀的道長晶通。 經(jīng)常有香客問我,道長哟玷,這世上最難降的妖魔是什么狮辽? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮巢寡,結(jié)果婚禮上喉脖,老公的妹妹穿的比我還像新娘。我一直安慰自己抑月,他們只是感情好树叽,可當我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著谦絮,像睡著了一般题诵。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上挨稿,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天仇轻,我揣著相機與錄音,去河邊找鬼奶甘。 笑死篷店,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播疲陕,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼方淤,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蹄殃?” 一聲冷哼從身側(cè)響起携茂,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎诅岩,沒想到半個月后讳苦,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡吩谦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年鸳谜,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片式廷。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡咐扭,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出滑废,到底是詐尸還是另有隱情蝗肪,我是刑警寧澤,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布蠕趁,位于F島的核電站薛闪,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏妻导。R本人自食惡果不足惜逛绵,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望倔韭。 院中可真熱鬧术浪,春花似錦、人聲如沸寿酌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽醇疼。三九已至硕并,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間秧荆,已是汗流浹背倔毙。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留乙濒,地道東北人陕赃。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓卵蛉,卻偏偏與公主長得像,于是被迫代替她去往敵國和親么库。 傳聞我的和親對象是個殘疾皇子傻丝,可洞房花燭夜當晚...
    茶點故事閱讀 43,612評論 2 350

推薦閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關注 消息 iOS 第三方庫、插件诉儒、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,066評論 4 62
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,837評論 25 707
  • PMP和PRINCE2應該選擇哪個忱反?光環(huán)國際項目管理認證 對于項目管理課程的選擇泛释,我們不能盲目地做選擇,一定要從自...
    Dan獨記憶閱讀 1,786評論 0 5
  • 老白已經(jīng)不止一次注意到這位客人了缭受。 作為七俠鎮(zhèn)最大的一家客棧胁澳,形形色色的客人每天不計其數(shù)该互,來了又走米者,可是沒有一位像...
    3b57bed3b062閱讀 184評論 0 1
  • 秋天在你的眼眸深處。那一抹黃和紅宇智,生在你的心中蔓搞。淡淡的美麗一覽無遺。 桔的香味随橘,穿透秋的空氣喂分。穿在你的身上,那樣的...
    簡簡風閱讀 445評論 11 11