貓貓學IOS(八)UI之熱門_喜馬拉雅UI實現-UIScrollView的使用,ios-uiscrollview
貓貓分享,必須精品
素材代碼地址: http://blog.csdn.net/u013357243/article/details/44588251
原文地址:http://blog.csdn.net/u013357243/article/details/44588159
先看效果
storyBoard用到的控制項
代碼實現
/*建立iOS交流學習群:304570962ps:貓貓的文章竟然被好多地方轉載了,受寵若驚啊,不過轉的時候請轉的全一點,別丟下素材什麼的,不標註轉載也沒事,大家一起努力學習貓貓就很高興了,如果需要學習資料視頻素材等等的可以加貓貓QQ:1764541256 或則znycat 讓我們一起努力學習吧。目前將這個遊戲的功能都實現了,雖然部分代碼抽取的不是那麼完美原文:http://blog.csdn.net/u013357243?viewmode=contents*///// NYViewController.m// 05 - 喜馬拉雅//// Created by apple on 15-3-24.// Copyright (c) 2015年 znycat. All rights reserved.//#import "NYViewController.h"@interface NYViewController ()@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;@property (weak, nonatomic) IBOutlet UIButton *lastButton;@end@implementation NYViewController/** setter方法 系統載入了Main.storyboard後,給scrollView對象進行賦值 此setScrollView方法是由系統自動調用的。 在看堆棧代用中 ,藍色的是我們自己調用的,其他是系統的。 */-(void)setScrollView:(UIScrollView *)scrollView{ //set方法中 第一句賦值 _scrollView = scrollView; /**設定滾動視圖內容 1,如果當前有間距,根據間距自動調整contentOffset 2,如果沒有間距,contentOffset是(0,0) 簡單說就是 contentSize 會根據邊距調整offset contentInset 不會調整offset */ //設定間距(指定內容外側邊距,並不會根據contentOffset來自動調整 ) self.scrollView.contentInset= UIEdgeInsetsMake(64, 0, 49, 0); //設定滾動視圖內容 self.scrollView.contentSize = CGSizeMake(0, CGRectGetMaxY(self.lastButton.frame)); NSLog(@"%s",__func__); //修改contentOffset /**如果先設定間距 然後再設定滾動視圖的內容就不用再控制修改contentOffset了 這裡是蘋果設計的一個缺憾,耦合性太強,代碼上下需要注意*/ // self.scrollView.contentOffset = CGPointMake(0, -64);}//視圖載入完成後執行- (void)viewDidLoad{ [super viewDidLoad]; NSLog(@"%s",__func__);}@end
UIScrollView使用以及屬性
行動裝置的螢幕⼤大⼩小是極其有限的,因此直接展⽰示在⽤使用者眼前的內容也相當有限,當展⽰示的內容較多,超出⼀一個螢幕時,⽤使用者可通過滾動⼿手勢來查看螢幕以外的內容, 普通的UIView不具備滾動功能,不能顯⽰示過多的內容, UIScrollView是⼀一個能夠滾動的視圖控制項,可以⽤用來展⽰示⼤大量的內容,並且可以通過滾 動查看所有的內容
舉例:⼿手機上的“設定”、其他⽰樣本程式
如果UIScrollView⽆無法滾動,可能是以下原因:
➢ 沒有設定contentSize
➢ scrollEnabled = NO
➢ 沒有接收到觸摸事件:userInteractionEnabled = NO
➢ 沒有取消autolayout功能(如果在Storyboard中添加了ScrollView的⼦子控制項,要想 scrollView滾動,必須取消autolayout)
常用的屬性
@property(nonatomic)CGPointcontentOffset; // 這個屬性⽤用來表⽰示UIScrollView滾動的位置@property(nonatomic)CGSizecontentSize;// 這個屬性⽤用來表⽰示UIScrollView內容的尺⼨寸,滾動範圍(能滾多遠)@property(nonatomic)UIEdgeInsetscontentInset; // 這個屬效能夠在UIScrollView的4周增加額外的捲動區域
常見屬性圖片表示
原文目錄:http://blog.csdn.net/u013357243?viewmode=contents
ps:學習iOS的過程是一個看代碼寫代碼的過程,雖然現在大多受都是UI,但是UI是相當重要的,這是客戶第一眼看到的地方,就是我們app的臉,就像我們看人一樣,都是先看臉,所以我們要讓UI美起來。
ps:有朋友問貓貓,說很多都直接用代碼載入UI,為啥要用storyboard來脫線,啥的。
其實這裡原因有好幾個,比如有的小程式直接拖就可以了,完全沒那麼麻煩,用代碼主要是為了後期維護方便,還有storyboard可以讓我們事實的看到效果,有利於學習。
PS 當然代碼寫還是很重要的,(其實我更願意全部用代碼寫) 代碼掌控天下的感覺,爽爆了不過學習是一個漸進的過程。大家一起努力學習吧,喵嗚