uipickerview的功能是讓使用者從一系列待選的值中選取乙個他們取需要的值,iphone鬧鐘的計時器就使用了uipickerview來選擇時間。
uipickerview的用法很簡單,即初始化->選擇資料來源->選擇委託物件->顯示。
// returns the number of 'columns' to display.
- (nsinteger)numberofcomponentsinpickerview:(uipickerview *)pickerview;
// returns the # of rows in each component..
- (nsinteger)pickerview:(uipickerview *)pickerview numberofrowsincomponent:(nsinteger)component;
乙個uipickerview可以有多個元件(component),每個元件提供了一列值讓使用者選擇,例如計時器中有小時和分鐘兩個元件。上面的兩個方法確定了uipickerview中的元件個數以及每個元件中的行數,即乙個元件中待選擇的值的個數,但是每一行具體代表什麼值並沒有確定,此時每一行都顯示『?』。這時我們需要再提供乙個委託物件給uipickerview,乙個委託物件在mvc中也屬於control,它要遵守uipickerviewdelegate協議,並且實現協議中的乙個方法:
- (nsstring *)pickerview:(uipickerview *)pickerview titleforrow:(nsinteger)row forcomponent:(nsinteger)component;
這個方法可以返回某個uipickerview中的某個元件的某一行顯示的字串。
uipickerview中有乙個屬性showsselectionindicator,用來突出當前選擇的行,ios7中即在中間增加兩條橫線來確定當前選定的行,以前的版本是增加乙個選定框,官房文件中這個屬性的預設值是no,可以直接將它賦值成yes或者呼叫setshowsselectionindicator:方法。但是我修改這個屬性時發現並沒有什麼變化,網上查了官方文件,原來ios7中這個屬性已經無效了。如果想去掉這兩條線,可以呼叫
如果想要知道使用者當前選擇了某個元件的哪一行,可以呼叫方法:selectedrowincomponent:,該方法返回當前行的下標。如果想要動態更新元件顯示的資料,可以讓需要更新的元件呼叫reload它的資料或者讓所有元件reload它們的資料,這時需要呼叫以下兩個方法:
[[self.pickerview.subviews objectatindex:1] sethidden:true];
[[self.pickerview.subviews objectatindex:2] sethidden:true];
因為uipickerview的subview有三層,下標為0的一層顯示component,下標為1和2的兩層顯示兩條橫線,但是最好不要這樣做。
// reloading whole view or single component
- (void)reloadallcomponents;
- (void)reloadcomponent:(nsinteger)component;
下面貼上我的**:
- (void)viewdidload
// returns the number of 'columns' to display.
- (nsinteger)numberofcomponentsinpickerview:(uipickerview *)pickerview;
return 0;
}// returns the # of rows in each component..
- (nsinteger)pickerview:(uipickerview *)pickerview numberofrowsincomponent:(nsinteger)component;
else
}return 0;
}- (nsstring *)pickerview:(uipickerview *)pickerview titleforrow:(nsinteger)row forcomponent:(nsinteger)component;
else
}return nil;
}
iOS7 動畫學習
該部分 實現了乙個黑色的圖形view從左到右地平滑移動 當然通過修改y座標也可以實現,由上到下的平滑移動 源自 ios7 programming code import viewcontroller.h inte ce viewcontroller property weak,nonatomic i...
IOS學習之基於IOS7的tab bar
什麼是tabbar?先幾張圖 上圖中藍色框起來的部分就是tabbar,它有例如以下幾個特徵 1 它通常位於螢幕的最下方,不是必定,但大部分情況是這樣。2 tab bar的每乙個選項 常表示不同的功能。這也是它與segmentedcontrol最重要的差別,後者強調的是同一功能不同類別的區分,前者則是...
iOS7適配問題
ios 7發布了,適配問題來了,開發者都忙起來了。先記乙個ios7 的幾個特點 1.座標 以螢幕左上角為原點 ios7以前在狀態列或者導航條下 2.uiscrollview 包括其子類,比如uitableview 會自動在頂部和底部預留一些空白 因為滾動經過半透明導航條或者tabbar下面,需要能隱...