uipickerview控制項在給使用者選擇某些特定的資料時經常使用到,這裡演示乙個簡單的選擇資料,顯示在uitextfield輸入框裡,把uipickerview作為輸入view,用*******作為選定資料的按鈕。和其他uitableview控制項相似,uipickerview也需要資料來源。
我們要實現的效果如下:
下面開始使用的步驟。
2.1、拖放乙個uipickerview,放置在view的最下方
2.2、拖放乙個*******控制項,放置在view的外面,讓它不屬於view的子控制項,並把item命名為「完成」,效果如下:
2.3 放置乙個flexible space bar button item 撐開
2.4 放乙個uitextfield,用來顯示選擇的資料
在viewcontroller.xib檔案裡按 alt + command+ enter鍵,開啟assistant editor,按住control鍵,選擇各個控制項,拖拽到 viewcontroller.h檔案裡,生成以下變數**
viewcontroller.h檔案裡實現
[cpp]view plain
copy
#import
@inte***ce viewcontroller : uiviewcontroller
- (ibaction)selectbutton:(id)sender;
@property (strong, nonatomic) iboutlet ui******* *done*******;
@property (strong, nonatomic) iboutlet uipickerview *selectpicker;
@property (strong, nonatomic) iboutlet uitextfield *textfield;
@end
viewcontroller.m檔案
[cpp]view plain
copy
-(nsinteger)numberofcomponentsinpickerview:(uipickerview *)pickerview
-(nsinteger) pickerview:(uipickerview *)pickerview numberofrowsincomponent:(nsinteger)component
-(nsstring*) pickerview:(uipickerview *)pickerview titleforrow:(nsinteger)row forcomponent:(nsinteger)component
-(void
)textfielddidendediting:(uitextfield *)textfield
上面numberofcomponentsinpickerview返回有幾個pickerview ,
textfielddidendediting這個在textfield結束編輯時,顯示pickerview選擇中的資料。
******* 的item的完成按鈕
[cpp]view plain
copy
- (ibaction)selectbutton:(id)sender
[cpp]view plain
copy
- (void
)viewdidload
**解釋:
設定委託
textfield.
delegate
=self;
selectpicker.
delegate
=self;
selectpicker.
datasource
=self;
隱藏uipickerview
selectpicker.frame =cgrectmake(0,480,320, 216);
執行:
例子**:
IOS學習之collectionView的使用
1 首次建立初始化時候肯定會遇到以下錯誤 uicollectionview must be initialized with a non nil layout parameter 解決辦法 使用乙個非空的layout初始化集合檢視,具體 源 wbsearchcontroller search wbs...
IOS控制項學習之UILabel
ios的uilabel我個人覺得很弱智,居然只有橫向設定而沒有豎向設定文字位置,這讓我很糾結。先看效果 1.新建專案 2.編輯 viewcontroller.m檔案 void viewdidload 3.自定義uilabelex 控制項 1 uilabelex.h import 定義乙個列舉型別,頂...
IOS學習筆記之NSZone
在碰到allocwithzone,copywithzone總會有個疑問,這個nszone到底是個什麼東西?簡單來說,可以想象成乙個記憶體池,alloc或是dealloc這些操作,都是在這個記憶體池中操作的。cocoa總是會配置乙個預設的nszone,任何預設的記憶體操作都是在這個 zone 上操作的...