日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【IOS 开发】基本 UI 控件详解 (UIDatePicker | UIPickerView | UIStepper | UIWebView | UIToolBar )

發布時間:2025/6/17 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【IOS 开发】基本 UI 控件详解 (UIDatePicker | UIPickerView | UIStepper | UIWebView | UIToolBar ) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


轉載注明出處 :?http://blog.csdn.net/shulianghan/article/details/50348982





一. 日期選擇器 (UIDatePicker)


UIDatePicker 屬性截圖 :?




1. UIDatePicker 控件屬性



(1) Mode 屬性?


Mode 屬性 : 用于設置 UIDatePicker 模式;

-- Date 屬性值 : 顯示日期, 不顯示時間;

-- Time 屬性值 : 顯示時間, 不顯示日期;

-- Date and Time 屬性值 : 同時顯示日期 和 時間;

-- Count Down Timer 屬性值 : 顯示倒計時器;



(2) Local 屬性?


Local 屬性值 : 國際化設置相關屬性, 通常使用默認的設置即可;



(3) Interval 屬性?


Interval 屬性值 : 設置兩個時間選項的時間間隔, 僅當采用 Time, Date and Time, Count Down Timer 三個屬性時有效;



(4) Constraints 屬性?


Constraints 屬性 : 設置控件的最小時間 和 最大時間;



(5) Timer 屬性?


Timer 屬性 : ?設置倒計時 的計時秒數, 只有采用 Count Down Timer 模式時有效;




2. UIDatePicker 日期選擇器 示例代碼



代碼示例 :?

-- 界面設計文件 :?


-- OCViewController.h :?

// // OCViewController.h // UIDatePicker // // Created by octopus on 15-12-19. // Copyright (c) 2015年 www.octopus.org.cn. All rights reserved. //#import <UIKit/UIKit.h>@interface OCViewController : UIViewController @property (strong, nonatomic) IBOutlet UIDatePicker *datePicker; - (IBAction)click:(id)sender;@end

-- OCViewController.m :?

// // OCViewController.m // UIDatePicker // // Created by octopus on 15-12-19. // Copyright (c) 2015年 www.octopus.org.cn. All rights reserved. //#import "OCViewController.h"@interface OCViewController ()@end@implementation OCViewController- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib. }- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated. }- (IBAction)click:(id)sender {//從 UIdatePicker 中獲取事件NSDate * date = [self.datePicker date];//創建 Date 格式化工具NSDateFormatter * formatter = [[NSDateFormatter alloc] init];//格式日期格式化格式[formatter setDateFormat:@"yyyy-MM-dd HH:mm"];//將日期轉為格式化好的字符串NSString * dateString = [formatter stringFromDate:date];//創建 警告對話框NSString * message = [NSString stringWithFormat:@"UIDatePicker 被選中的時間是 %@", dateString];UIAlertView * alertView = [[UIAlertView alloc] initWithTitle:@"時間選擇" message:message delegate:nil cancelButtonTitle:@"確定" otherButtonTitles: nil];//顯示警告對話框[alertView show]; } @end

-- 界面運行效果 :?




3. UIDatePicker 計時器 示例代碼



計時器示例代碼 :?

-- 界面設計文件 :?


-- OCViewController.h :?

// // OCViewController.h // UIDatePicker // // Created by octopus on 15-12-19. // Copyright (c) 2015年 www.octopus.org.cn. All rights reserved. //#import <UIKit/UIKit.h>@interface OCViewController : UIViewController //日期選擇器 @property (strong, nonatomic) IBOutlet UIDatePicker *datePicker; //計時器 @property (strong, nonatomic) IBOutlet UIDatePicker *countDown; //計時器按鈕控件 @property (strong, nonatomic) IBOutlet UIButton *countDownBt; //日期選擇器下的按鈕方法 - (IBAction)click:(id)sender; //計時器下的按鈕方法 - (IBAction)clickCountDown:(id)sender;@end

-- OCViewController.m :?

// // OCViewController.m // UIDatePicker // // Created by octopus on 15-12-19. // Copyright (c) 2015年 www.octopus.org.cn. All rights reserved. //#import "OCViewController.h"@interface OCViewController ()@end@implementation OCViewControllerNSTimer * timer; NSInteger second;- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.//設置 UIDatePicker 模式為 計時器模式self.countDown.datePickerMode = UIDatePickerModeCountDownTimer; }- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated. }- (IBAction)click:(id)sender {//從 UIdatePicker 中獲取事件NSDate * date = [self.datePicker date];//創建 Date 格式化工具NSDateFormatter * formatter = [[NSDateFormatter alloc] init];//格式日期格式化格式[formatter setDateFormat:@"yyyy-MM-dd HH:mm"];//將日期轉為格式化好的字符串NSString * dateString = [formatter stringFromDate:date];//創建 警告對話框NSString * message = [NSString stringWithFormat:@"UIDatePicker 被選中的時間是 %@", dateString];UIAlertView * alertView = [[UIAlertView alloc] initWithTitle:@"時間選擇" message:message delegate:nil cancelButtonTitle:@"確定" otherButtonTitles: nil];//顯示警告對話框[alertView show]; }- (IBAction)clickCountDown:(id)sender {NSLog(@"點擊了 clickCountDown");//獲取倒計時剩余時間second = self.countDown.countDownDuration;//設置 UIDatePicker 和 倒計時按鈕 禁用狀態self.countDown.enabled = NO;[sender setEnabled:NO];//生成當前秒數 字符串NSString * message = [NSString stringWithFormat:@"倒計時 剩余 %d", second];//創建警告框UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"倒計時" message:message delegate:nil cancelButtonTitle:@"確定" otherButtonTitles: nil];//顯示警告框[alert show];//啟動定時器, 每隔 1 秒調用一次timer = [NSTimer scheduledTimerWithTimeInterval:60 target:self selector:@selector(tick) userInfo:nil repeats:YES]; }-(void) tick{//秒數 減去 60second = second - 60;//將自減后的秒數設置給 UIDatePickerself.countDown.countDownDuration = second;//如果倒計時完畢, 控件 恢復正常if(second <= 0){[timer invalidate];self.countDown.enabled = YES;self.countDownBt.enabled = YES;} } @end

-- 界面運行展示 :?






二. 選擇器 (UIPickerView)




1. UIPickerView 簡介



(1) UIPickerView 繼承結構?


UIPickerView 繼承結構 :?

-- 父類 : 繼承 UIView, 不繼承 UIControl;

-- 處理方法 : 該類不能綁定 IBAction 處理方法, 其事件處理只能交給對應的委托對象的委托方法完成;



(2) UIPickerView 屬性


UIPickerView 屬性 :?


-- Shows Selection Indicator 屬性 : 是否高亮顯示選中的選項;



(3) UIPickerView 行列屬性讀取方法


UIPickerView 行列屬性讀取方法 :?

-- "numberOfComponents" 方法 : 獲取 UIPickerView 中的可選的列表的選項個數;

-- "numberOfRowsInComponent" 方法 : 獲取 列 數;

-- "rowSizeForComputer" 方法 : 獲取指定列的 選項個數, 返回值是 CGSize 類型;

-- "selectRow : inComponent : animated" 方法 : 選中 某一列 的 某個 選項, 并設置是否使用動畫;

-- "viewForRow : forComponent" 方法 : 返回指定選項使用的 控件;



(4) UIPickerViewDataSource 數據管理


UIPickerViewDataSource 數據設置方法 :?

-- 設置數據 : UIPickerView 對象可以設置一個 UIPickerViewDataSource 對象, 用于數據管理;

-- "numberOfComponentsInPickerView" 方法 : 判斷包含多少列;

-- "pickerView : numberOfRowsInComponent : " 方法 : 指定某一列應該包含多少個選項;



(5) UIPickerViewDelegate 管理 外觀 和 響應


UIPickerViewDelegate 簡介 :?

-- CGFloat 類型 : 32 位機器上是 float 類型, 64 位機器上是 double 類型;

typedef float CGFloat;// 32-bit typedef double CGFloat;// 64-bitstruct CGPoint {CGFloat x;CGFloat y; };

-- 主要作用 : 為 UIPickerView 設置 UIPickerViewDelegate 委托對象, 用于管理 UIPickerView 外觀, 用于響應 UIPickerView 的選中事件;

-- "pickerView : rowHeightForComponent" 方法 : 返回 UIPickerView 指定選項的高度, 類型 CGFloat;

-- "pickerView : widthForComponent" 方法 : 返回 UIPickerView 指定選項的寬度, 類型 CGFloat;

-- "pickerView : tittleForRow : forComponent" 方法 : 返回指定列, 指定選項的標題, 類型 NSString;

-- "pickerView : viewForRow : forComponent : reusingView" 方法 : 返回 UIView 控件, 該控件是指定列 的 指定選項控件;

-- "pickerView : didSelectRow : inComponent" 方法 : 選定 UIPickerView 指定列的指定列表項 會回調該方法; ?




2. 單行選擇器示例


(1) 相關 API 簡介


相關 API 簡介 :?

-- 為 UIPickerView 設置 數據 和 操作 委托 :?

//為 UIPickerView 設置 UIPickerViewDataSource 委托self.pickerView.dataSource = self;//為 UIPickerView 設置 UIPickerViewDelegate 委托self.pickerView.delegate = self;
-- 設置 UIPickerView 列數 : 該方法是 UIPickerViewDataSource 委托方法;

//UIPickerViewDataSource 委托中定義的方法, 返回 UIPickerView 包含多少列 - (NSInteger) numberOfComponentsInPickerView:(UIPickerView *)pickerView{return 1; }
-- 設置 UIPickerView 某列對應選項個數 : 該方法是 UIPickerViewDataSource 委托方法;

//UIPickerViewDataSource 委托方法, 獲取指定列 有多少個選項數據 - (NSInteger) pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{/*component 是列的索引*/return array.count; }
-- 設置 UIPickerView 選項返回的字符串值 : 該方法是 UIPickerViewDelegate 委托方法;

/*UIPickerViewDelegate 委托方法, 該方法返回指定列的 指定 選項 的值row 參數 : 行 索引component 參數 : 列 索引, 由于 只有一列, 因此我們不必關系 該索引, 只需要關心 行 索引即可*/ - (NSString *) pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{return [array objectAtIndex:row]; }
-- 設置 UIPickerView 選中選項方法 : 該方法是 UIPickerViewDelegate 委托方法;

/*UIPickerViewDelegate 委托方法, 當選中某個選項時 激發的方法row 參數 : 選中選項所在的列的索引component 參數 : 選中選項所在的行的索引*/ - (void) pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{// 生成對話框, 在對話框中顯示選中的內容UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"UIPickerView 提示" message:[NSString stringWithFormat : @"UIPickerView 選中選項是 : %@", [array objectAtIndex : row]] delegate:nil cancelButtonTitle:@"確定" otherButtonTitles: nil];//顯示對話框[alert show]; }

(2) 單行選擇器代碼示例


單行選擇器代碼示例 :?

-- 界面設計文件 :?


-- OCViewController.h :?

// // OCViewController.h // UIPickerView // // Created by octopus on 15-12-21. // Copyright (c) 2015年 www.octopus.org.cn. All rights reserved. //#import <UIKit/UIKit.h>@interface OCViewController : UIViewController <UIPickerViewDataSource, UIPickerViewDelegate>// UIPIckerView 的 IBOutlet 引用 @property (strong, nonatomic) IBOutlet UIPickerView *pickerView;@end

-- OCViewController.m :?

// // OCViewController.m // UIPickerView // // Created by octopus on 15-12-21. // Copyright (c) 2015年 www.octopus.org.cn. All rights reserved. //#import "OCViewController.h"@interface OCViewController ()@end@implementation OCViewControllerNSArray * array;- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.//創建 UIPickerView 列表中顯示的字符串集合array = [NSArray arrayWithObjects:@"知春路", @"五道口", @"上地", @"西二旗", @"龍澤", @"回龍觀", nil];//為 UIPickerView 設置 UIPickerViewDataSource 委托self.pickerView.dataSource = self;//為 UIPickerView 設置 UIPickerViewDelegate 委托self.pickerView.delegate = self;}//UIPickerViewDataSource 委托中定義的方法, 返回 UIPickerView 包含多少列 - (NSInteger) numberOfComponentsInPickerView:(UIPickerView *)pickerView{return 1; }//UIPickerViewDataSource 委托方法, 獲取指定列 有多少個選項數據 - (NSInteger) pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{/*component 是列的索引*/return array.count; }/*UIPickerViewDelegate 委托方法, 該方法返回指定列的 指定 選項 的值row 參數 : 行 索引component 參數 : 列 索引, 由于 只有一列, 因此我們不必關系 該索引, 只需要關心 行 索引即可*/ - (NSString *) pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{return [array objectAtIndex:row]; }/*UIPickerViewDelegate 委托方法, 當選中某個選項時 激發的方法row 參數 : 選中選項所在的列的索引component 參數 : 選中選項所在的行的索引*/ - (void) pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{// 生成對話框, 在對話框中顯示選中的內容UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"UIPickerView 提示" message:[NSString stringWithFormat : @"UIPickerView 選中選項是 : %@", [array objectAtIndex : row]] delegate:nil cancelButtonTitle:@"確定" otherButtonTitles: nil];//顯示對話框[alert show]; }- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated. }- (void) valueChange{ }@end


-- 運行效果展示 :?





3. 多行列表選擇器示例代碼



(1) 示例代碼


多行列表選擇示例代碼 :?

-- 界面設計文件 :?


-- OCViewController.h :?

// // OCViewController.h // MultiUIPickerView // // Created by octopus on 15-12-23. // Copyright (c) 2015年 www.octopus.org.cn. All rights reserved. //#import <UIKit/UIKit.h>/*實現 UIPickerViewDelegate 和 UIPickerViewDataSource 兩個協議*/ @interface OCViewController : UIViewController <UIPickerViewDelegate, UIPickerViewDataSource> @property (strong, nonatomic) IBOutlet UIPickerView *pickerView;@end

-- OCViewController.m :?

// // OCViewController.m // MultiUIPickerView // // Created by octopus on 15-12-23. // Copyright (c) 2015年 www.octopus.org.cn. All rights reserved. //#import "OCViewController.h"@interface OCViewController ()@end@implementation OCViewController//用于存儲數據源 NSArray * line13; NSArray * line1;//分別存儲當前數據源中的索引 NSInteger line1_row; NSInteger line13_row;- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.line13 = [NSArray arrayWithObjects:@"西直門", @"大鐘寺", @"知春路", @"五道口", @"上地", @"西二旗", nil];line1 = [NSArray arrayWithObjects:@"八寶山", @"五棵松", @"八角游樂園", @"蘋果園", @"萬壽路", @"公主墳", nil];self.pickerView.dataSource = self;self.pickerView.delegate = self; }//UIPickerViewDataSource 委托方法, 設定 UIPickerView 列數 - (NSInteger) numberOfComponentsInPickerView:(UIPickerView *)pickerView{return 2; }//UIPickerViewDataSource 委托方法, 設置每一列的選項個數 - (NSInteger) pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{NSInteger count;switch (component) {case 0:count = line13.count;break;case 1:count = line1.count;break;default:count = 0;break;}return count; }//UIPickerViewDelegate 委托方法, 設置每個選項的顯示的字符串標題 - (NSString *) pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{NSString * tittle;switch (component) {case 0:tittle = [line13 objectAtIndex:row];break;case 1:tittle = [line1 objectAtIndex:row];break;default:tittle = nil;break;}return tittle; }//UIPickerViewDelegate 委托方法, 設置選中回調方法 -(void) pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{//設置當前獲取的 行列 值, 并存儲到類變量中if(component == 0){line13_row = row;}else if(component == 1){line1_row = row;}//生成對話框中顯示的字符串NSString * message = [NSString stringWithFormat:@"選中內容 一號線 %@, 十三號線 %@", [line1 objectAtIndex:line1_row], [line13 objectAtIndex:line13_row]];//生成UIAlertView * alertView = [[UIAlertView alloc] initWithTitle:@"UIPickerView 多行選擇" message:message delegate:nil cancelButtonTitle:@"確定" otherButtonTitles: nil];[alertView show]; }//指定 UIPickerView 的選項寬度 - (CGFloat) pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component{CGFloat width;switch (component) {case 0:width = 100;break;case 1:width = 150;break;default:break;}return width; }- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated. }@end

-- 運行效果 :?





4. 相關聯的多行列表選擇器示例代碼



(1) 相關 API 簡介


相關 API 簡介 :?

-- 實現 UIPickerView 委托協議 :?

@interface OCViewController : UIViewController <UIPickerViewDataSource, UIPickerViewDelegate>

-- 設置 UIPickerView 委托 :?

//設置委托self.pickerView.dataSource = self;self.pickerView.delegate = self;


-- UIPickerView 重新加載某一列 :?

//重新加載 第二列[self.pickerView reloadComponent:1];
-- UIPickerView 設置默認選項 :?

//設置第二列的默認選中, 一旦切換鍵值, 第二列默認選中 第一個選項[self.pickerView selectRow:0 inComponent:1 animated:YES];

轉載注明出處?:?http://blog.csdn.net/shulianghan/article/details/50348982



(2) 關聯多項 UIPickerView 示例代碼


示例代碼 :?

-- 解析 : 在 API 內部是沒有定義關聯邏輯的, 關聯邏輯是開發者自己使用邏輯實現的, 與上面的示例代碼沒有本質區別, 使用的還是相同的一套 API;

-- 界面設計文件 :?


-- OCViewController.h :?

// // OCViewController.h // CertainMultiPickerView // // Created by octopus on 15-12-23. // Copyright (c) 2015年 www.octopus.org.cn. All rights reserved. //#import <UIKit/UIKit.h>@interface OCViewController : UIViewController <UIPickerViewDataSource, UIPickerViewDelegate> @property (strong, nonatomic) IBOutlet UIPickerView *pickerView; @end

-- OCViewController.m :?

// // OCViewController.m // CertainMultiPickerView // // Created by octopus on 15-12-23. // Copyright (c) 2015年 www.octopus.org.cn. All rights reserved. //#import "OCViewController.h"@interface OCViewController ()@end@implementation OCViewControllerNSDictionary * dictionary; NSArray * rails; NSInteger selectedRail;- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.//數據源dictionary = [NSDictionary dictionaryWithObjectsAndKeys:[NSArray arrayWithObjects:@"知春路", @"五道口", @"西二旗", @"龍澤", nil], @"十三號線", [NSArray arrayWithObjects : @"五棵松", @"八寶山",@"八角游樂園", @"蘋果園", nil], @"一號線" , nil];//獲取鍵值集合rails = [dictionary allKeys];//當前顯示的鍵值selectedRail = 0;//設置委托self.pickerView.dataSource = self;self.pickerView.delegate = self;}//UIPickerViewDataSource 委托方法, 設定 UIPickerView 每列的行數 - (NSInteger) pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{//第一列 鍵值 就2個if(component == 0)return rails.count;//第二列 根據 鍵值的當前選中的鍵值 確定對應的集合, 然后返回該對應集合的個數return [[dictionary objectForKey:[rails objectAtIndex:selectedRail]] count]; }//UIPickerViewDataSource 委托方法, 設定 UIPickerView 的列數 - (NSInteger) numberOfComponentsInPickerView:(UIPickerView *)pickerView{return 2; }//UIPickerViewDelegate 委托方法, UIPickerView 指定列表選項上顯示標題 - (NSString *) pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{if(component == 0){return [rails objectAtIndex:row];}return [[dictionary objectForKey:[rails objectAtIndex:selectedRail]] objectAtIndex:row]; }- (void) pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{//UIAlertView 顯示的信息NSString * message;if(component == 0){/*選中的 鍵 這一列*///將當前選中的列 設置到類變量中selectedRail = row;//重新加載 第二列[self.pickerView reloadComponent:1];//設置第二列的默認選中, 一旦切換鍵值, 第二列默認選中 第一個選項[self.pickerView selectRow:0 inComponent:1 animated:YES];//第一項 即 鍵值, 第二項 根據字典中的鍵值 選擇 對應集合中的第一個元素message = [NSString stringWithFormat:@"第一列選項 : %@, 第二列選項 : %@", [rails objectAtIndex:selectedRail], [[dictionary objectForKey:[rails objectAtIndex:selectedRail]] objectAtIndex:0]];}else if (component == 1){/*選中的 值 這一列*/message = [NSString stringWithFormat:@"第一列選項 : %@, 第二列選項 : %@", [rails objectAtIndex:selectedRail], [[dictionary objectForKey:[rails objectAtIndex:selectedRail]] objectAtIndex:row]];}/*創建并顯示對話框*/UIAlertView * alertView = [[UIAlertView alloc] initWithTitle:@"選擇內容" message:message delegate:nil cancelButtonTitle:@"確定" otherButtonTitles:nil];[alertView show]; }// 設置列寬 - (CGFloat) pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component{if(component == 0){return 150;}return 150; }- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated. }@end

-- 運行效果 :?





5. 老虎機 示例代碼



(1) 相關 API 簡介


相關 API 簡介 :?

-- 音頻文件使用流程 :?

//音頻文件 位置NSURL * gameSoundUrl = [[NSBundle mainBundle] URLForResource:@"gaming" withExtension:@"wav"];//音頻標識SystemSoundID soundId;//加載音頻文件AudioServicesCreateSystemSoundID((__bridge CFURLRef)(gameSoundUrl), &soundId);//播放音頻AudioServicesPlaySystemSound(soundId);
-- 隨機數生成 :?

//生成一個 0 ~ 5 之間的隨機數NSUInteger randomNum = arc4random() % icons.count;
-- 設置 UIPickerView 選項 :?

//將隨機數設置給 UIPickerView 的 四列 中的每行選項 索引[self.pickerView selectRow:randomNum inComponent:i animated:YES];


(2) 老虎機 代碼示例


代碼示例 :?

-- 界面設計文件 :?


-- OCViewController.h :?

// // OCViewController.h // TigerGame // // Created by octopus on 15-12-23. // Copyright (c) 2015年 www.octopus.org.cn. All rights reserved. //#import <UIKit/UIKit.h> #import <AudioToolbox/AudioToolbox.h> //實現 UIPickerView 的兩個委托協議 @interface OCViewController : UIViewController<UIPickerViewDataSource, UIPickerViewDelegate>//UIPickerView 引用 @property (strong, nonatomic) IBOutlet UIPickerView *pickerView; //UIButton 開始游戲按鈕 引用 @property (strong, nonatomic) IBOutlet UIButton *button;//點擊按鈕回調的方法 - (IBAction)startGame:(id)sender; @end

-- OCViewController.m :?

// // OCViewController.m // TigerGame // // Created by octopus on 15-12-23. // Copyright (c) 2015年 www.octopus.org.cn. All rights reserved. //#import "OCViewController.h"@interface OCViewController ()@end@implementation OCViewController//設置一個默認的 控件 tag #define imageTag 1//圖標圖片集合 NSArray * icons;- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib./*加載 六張 圖標圖片*/UIImage * ai = [UIImage imageNamed:@"ai.png"];UIImage * as = [UIImage imageNamed:@"as.png"];UIImage * br = [UIImage imageNamed:@"br.png"];UIImage * eclipse = [UIImage imageNamed:@"eclipse.png"];UIImage * ps = [UIImage imageNamed:@"ps.png"];UIImage * xcode = [UIImage imageNamed:@"xcode.png"];//將六張 圖標 圖片放入集合中icons = [NSArray arrayWithObjects:ai, as, br, eclipse, ps, xcode, nil];//設置 UIPickerView 委托self.pickerView.dataSource = self;self.pickerView.delegate = self; }- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated. }//點擊開始游戲按鈕 回調的方法 - (IBAction)startGame:(id)sender {//設置按鈕不可點擊self.button.enabled = NO;//音頻文件 位置NSURL * gameSoundUrl = [[NSBundle mainBundle] URLForResource:@"gaming" withExtension:@"wav"];//音頻標識SystemSoundID soundId;//加載音頻文件AudioServicesCreateSystemSoundID((__bridge CFURLRef)(gameSoundUrl), &soundId);//播放音頻AudioServicesPlaySystemSound(soundId);for (int i = 0; i < 4; i++) {//生成一個 0 ~ 5 之間的隨機數NSUInteger randomNum = arc4random() % icons.count;//將隨機數設置給 UIPickerView 的 四列 中的每行選項 索引[self.pickerView selectRow:randomNum inComponent:i animated:YES];}//設置按鈕可用self.button.enabled = YES;}/*下面是 UIPickerViewDataSource 的委托方法*///UIPickerViewDataSource 委托方法, 設置 UIPickerView 的列數 - (NSInteger) numberOfComponentsInPickerView:(UIPickerView *)pickerView{return 4; }//UIPickerViewDataSource 委托方法, 設置 UIPickerView 每一列的行數 - (NSInteger) pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{return icons.count; }/*下面是 UIPickerViewDelegate 的委托方法*///設置每個 UIPickerView 中每列 每行 的選項 UI 控件 - (UIView *) pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view{/*這里注意 重用 View 的 tag, 我們將 View 的 tag 設置為1, 如果 View 是已經重用的 直接返回, 如果沒有重用, 創建 View 設置其 tag 為1, 并返回*/if (view.tag != imageTag) {//創建一個 UIImageView, 并為其設置一張圖片view = [[UIImageView alloc] initWithImage : [icons objectAtIndex : row]];//UIImageView 設置 tag 標識view.tag = imageTag;//設置該組件不可響應任何事件view.userInteractionEnabled = NO;view.contentMode = UIViewContentModeScaleAspectFill;}return view; }//設置 UIPickerView 中每個選項的 寬度 40 - (CGFloat) pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component{return 70; }//設置 UIPickerView 中每個選項的 高度 40 - (CGFloat) pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component{return 70; }@end

-- 運行效果 :?







四. 微調器 (UIStepper)




1. UIStepper 屬性簡介


UIStepper 屬性截圖 :?




(1) value 屬性?


value 屬性 :?


-- Minimum : UIStepper 最小值, 默認 0;

-- Maximum : UIStepper 最大值, 默認 100;

-- Current : UIStepper 當前值, 在 Minimum 與 Maximum 之間;

-- Step : 每次點擊 + 或 -, 增加 或 減小的值;



(2) Behavior 屬性?


Behavior 屬性 :?

-- AutoRepeat : 默認 YES, 此時按住 + 或 - 不放, value 值會持續增加 或 減小;

-- Continuous : 默認 YES, 此時 交互時會立即發送 value change 事件, NO 時 會等交互結束后才發送 value change 事件;

-- Wrap : 默認 NO, YES 時 當值持續增加 比 Maximum 還大時會變成 Minimum, 當 值持續減小 比 Minimum 還小時會變為 Maximum;




2. UIStepper 代碼示例



代碼示例 :?

-- 界面設計文件 :?


-- OCViewController.h :?

// // OCViewController.h // UIStepper // // Created by octopus on 15-12-24. // Copyright (c) 2015年 www.octopus.org.cn. All rights reserved. //#import <UIKit/UIKit.h>@interface OCViewController : UIViewController@property (strong, nonatomic) IBOutlet UILabel *label1; @property (strong, nonatomic) IBOutlet UILabel *label2;//將三個 UIStepper 的 IBAction 綁定方法都綁定在一個 valueChange 方法中 - (IBAction)valueChanged:(UIStepper *)sender;@end

-- OCViewController.m :?

// // OCViewController.m // UIStepper // // Created by octopus on 15-12-24. // Copyright (c) 2015年 www.octopus.org.cn. All rights reserved. //#import "OCViewController.h"@interface OCViewController ()@end@implementation OCViewController- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib. }- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated. }- (IBAction)valueChanged:(UIStepper *)sender {/*注意 將 double 類型轉為字符串, 需要使用 NSString 的 stringWithFormat 方法進行轉換*/switch (sender.tag) {case 0:self.label1.text = [NSString stringWithFormat:@"%g", sender.value];break;case 1:self.label2.text = [NSString stringWithFormat:@"%g", sender.value];break;default:break;} } @end

-- 運行效果 :?






四. 網頁控件 (UIWebView)


1. UIWebView 控件屬性


UIWebView 控件屬性截圖 :?



(1) Scaling 屬性?


Scaling 屬性作用 : 是否縮放網頁適配 UIWebView 控件;



(2) detection 屬性?


detection 屬性 :?


-- Links :?自動識別超鏈接, 點擊超鏈接進入該頁面;

-- Address : 自動識別網頁上的地址;

-- Phone Numbers : 自動識別電話號碼, 點擊電話號碼就會自動撥號;

-- Events : 自動識別網頁上的日歷事件;




2. UIWebView 操作



(1) UIWebView 內容加載


UIWebView 加載 :?

-- "loadHTMLString : baseURL" 方法 : 加載顯示 HTML 字符串;

-- "loadRequest" 方法 : 加載顯示 網頁;

-- "stringByEvaluatingJavaScriptFromString" 方法 : 執行 JavaScript 字符串, 并返回結果;



(2) UIWebView 導航控制


UIWebView 導航控制 :?

-- "goBack" 方法 : 后退回上一頁;

-- "goForward" 方法 : 前進;

-- "reload" 方法 : 重新加載網頁;

-- "stopLoading" 方法 : 停止加載網頁;



(3) UIWebViewDelegate 協議委托


UIWebViewDelegate 協議 :?

-- "webView:shouldStartLoadWithRequest:navigationType" 方法 : 加載指定 URL 網頁時回調該方法;

-- "webViewDidStartLoad" 方法 : 開始加載網頁時激發的方法;

-- "webViewDidFinishLoad" 方法 : 結束加載網頁回調的方法;

-- "webViewDidFailLoadWithError" 方法 : 加載出現錯誤回調方法;




3. UIWebView 瀏覽器示例



(1) 相關 API


相關 API 簡介 :?

-- 設置網頁內容自適應 :?

//設置 UIWebView 網頁內容自適應self.webView.scalesPageToFit = YES;
-- 生成對話框顯示加載錯誤內容 :

//生成對話框 顯示 加載失敗內容UIAlertView * alertView = [[UIAlertView alloc] initWithTitle:@"加載失敗" message:[error localizedDescription] delegate:nil cancelButtonTitle:@"確定" otherButtonTitles: nil];
-- 根據 String 字符串 獲取 URL 對象 :?

//加載網頁內容[self.textField resignFirstResponder];//獲取網頁地址NSString * address = self.textField.text;//將地址轉為 urlNSURLRequest * request = [NSURLRequest requestWithURL:[NSURL URLWithString:address]];
-- 加載網頁內容 :?

//加載網頁內容[self.webView loadRequest:request];
-- 停止加載網頁 :?

//停止加載[self.webView stopLoading];
-- 重新加載網頁 :?

//重新加載[self.webView reload];
-- 前進 :?

//前進[self.webView goForward];

-- 后退 :?

//后退[self.webView goBack];



(2) 代碼示例


代碼示例 :?

-- 界面設計文件 :?


-- OCViewController.h :?

// // OCViewController.h // UIWebView // // Created by octopus on 15-12-28. // Copyright (c) 2015年 www.octopus.org.cn. All rights reserved. //#import <UIKit/UIKit.h>@interface OCViewController : UIViewController <UIWebViewDelegate> //地址欄輸入框 引用 @property (strong, nonatomic) IBOutlet UITextField *textField; //網頁控件 引用 @property (strong, nonatomic) IBOutlet UIWebView *webView;//五個按鈕的點擊方法都回調該方法, 通過 tag 屬性來區分不同的按鈕 - (IBAction)click:(UIButton *)sender;@end

-- OCViewController.m :?

// // OCViewController.m // UIWebView // // Created by octopus on 15-12-28. // Copyright (c) 2015年 www.octopus.org.cn. All rights reserved. //#import "OCViewController.h"@interface OCViewController ()@end@implementation OCViewController- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.//設置 UIWebView 網頁內容自適應self.webView.scalesPageToFit = YES;//設置 UIWebView 的委托self.webView.delegate = self;}- (void) webViewDidStartLoad:(UIWebView *)webView{ }- (void) webViewDidFinishLoad:(UIWebView *)webView{ }- (void) webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error{//生成對話框 顯示 加載失敗內容UIAlertView * alertView = [[UIAlertView alloc] initWithTitle:@"加載失敗" message:[error localizedDescription] delegate:nil cancelButtonTitle:@"確定" otherButtonTitles: nil];//顯示對話框[alertView show]; }- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated. }- (IBAction)click:(UIButton *)sender {NSInteger tag = sender.tag;NSLog(@"tag : %d", tag);switch (tag) {case 0:{//加載網頁內容[self.textField resignFirstResponder];//獲取網頁地址NSString * address = self.textField.text;//將地址轉為 urlNSURLRequest * request = [NSURLRequest requestWithURL:[NSURL URLWithString:address]];//加載網頁內容[self.webView loadRequest:request];}break;case 1://后退[self.webView goBack];break;case 2://前進[self.webView goForward];break;case 3://重新加載[self.webView reload];break;case 4://停止加載[self.webView stopLoading];break;default:break;} } @end

-- 運行效果 :?










五. 工具條控件 (UIToolBar)


1. UIToolBar 控件屬性


UIToolBar 屬性截圖 :?



(1) Style 屬性?


Style 屬性 : 指定工具條風格;


-- Default : 默認風格;

-- Black : 黑色背景, 白字風格;

-- Black Translucent (Deprecated) : 透明背景;



(2) items 屬性


items 屬性 : 該 Item 是一個 NSArray 對象, 包含多個 BarButtonItem;

?





2. UIToolBar 工具條代碼示例




(1) 工具條代碼示例


代碼示例 :?

-- 界面設計文件 :?


-- OCViewController.h :?

// // OCViewController.h // UItoolBar // // Created by octopus on 15-12-29. // Copyright (c) 2015年 www.octopus.org.cn. All rights reserved. //#import <UIKit/UIKit.h>@interface OCViewController : UIViewController- (IBAction)click:(UIBarButtonItem *)sender;@end

-- OCViewController.m :?

// // OCViewController.m // UItoolBar // // Created by octopus on 15-12-29. // Copyright (c) 2015年 www.octopus.org.cn. All rights reserved. //#import "OCViewController.h"@interface OCViewController ()@end@implementation OCViewControllerUIProgressView * progress; NSTimer * timer;- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.//創建 UIToolBar 控件UIToolbar * toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 50, 320, 44)];[self.view addSubview:toolBar];//創建文字的 控件按鈕UIBarButtonItem * bi1 = [[UIBarButtonItem alloc] initWithTitle:@"Left" style:UIBarButtonItemStylePlain target:self action:@selector(clickCodeItem:)];//創建 圖片的 控件按鈕UIBarButtonItem * bi2 = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"xcode.png"] style:UIBarButtonItemStyleBordered target:self action:@selector(clickCodeItem:)];//創建 一個 系統的添加 按鈕UIBarButtonItem * bi3 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(clickCodeItem:)];//創建固定長度的空白UIBarButtonItem * bi4 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];//將進度條 封裝成 UIBarButtonItem 按鈕progress = [[UIProgressView alloc] initWithProgressViewStyle:UIProgressViewStyleBar];progress.frame = CGRectMake(0, 0, 80, 20);progress.progress = 0;UIBarButtonItem * bi5 = [[UIBarButtonItem alloc] initWithCustomView:progress];//將上面創建的按鈕添加到工具條中toolBar.items = [NSArray arrayWithObjects:bi1, bi2, bi3, bi4, bi5, nil];//啟動一個定時器, 更新進度條timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(changeProgress) userInfo:nil repeats:YES];}- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated. }- (IBAction)click:(UIBarButtonItem *)sender {NSLog(@"tag : %d, tittle : %@", sender.tag, [sender title]); }- (void) clickCodeItem : (id)sender{NSLog(@"點擊 %@", sender); }- (void) changeProgress{if (progress.progress >= 1.0) {[timer invalidate];}else{[progress setProgress:progress.progress + 0.01 animated:YES];} }@end

-- 運行效果 :

2015-12-29 15:17:55.644 UItoolBar[2331:60b] 點擊 <UIBarButtonItem: 0x8c3b0d0> 2015-12-29 15:17:58.925 UItoolBar[2331:60b] 點擊 <UIBarButtonItem: 0x8c3a3d0> 2015-12-29 15:18:00.669 UItoolBar[2331:60b] 點擊 <UIBarButtonItem: 0x8c3c1a0> 2015-12-29 15:18:07.831 UItoolBar[2331:60b] tag : 1, tittle : Left 2015-12-29 15:18:09.446 UItoolBar[2331:60b] tag : 2, tittle : Center 2015-12-29 15:18:10.961 UItoolBar[2331:60b] tag : 3, tittle : Right

?


轉載注明出處?:?http://blog.csdn.net/shulianghan/article/details/50348982




總結

以上是生活随笔為你收集整理的【IOS 开发】基本 UI 控件详解 (UIDatePicker | UIPickerView | UIStepper | UIWebView | UIToolBar )的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 瑟瑟网站免费 | 久久久久久久久久久av | 变态另类丨国产精品 | 国产美女永久免费 | 国产精品亚洲成在人线 | 极品探花在线 | 欧美r级在线观看 | 一区二区三区免费高清视频 | 国产盗摄av | 精品人妻一区二 | 亚洲日本色图 | 少妇视频网站 | 日本少妇电影 | 国产成人精品a视频 | 脱女学生小内内摸了高潮 | 在线 色| 国语对白精彩对话 | 国产精品美女 | 亚洲婷婷小说 | 色中色综合 | 男女互操在线观看 | 实拍女处破www免费看 | 中文字幕二区 | 欧美激情一区二区三区四区 | 成人av免费在线 | av日日夜夜| 亚洲国产黄色av | 毛片毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 久久久久亚洲av无码网站 | 久久久久久久福利 | 九色精品视频 | xxxxx在线 | 中文字幕高清视频 | 亚洲操操 | 婷婷天堂网 | 五月婷网 | 日韩欧美一区二区一幕 | 色七七视频 | 国产精品永久免费视频 | 午夜精品久久久久久久 | 国产福利视频网站 | 99久久夜色精品国产亚洲 | 成人做爰www看视频软件 | 亚洲18在线看污www麻豆 | 99久久99久久精品国产片果冰 | 日韩亚洲欧美一区二区三区 | 亚洲第一在线播放 | 中文字幕一区二区三区四区视频 | 精品欧美一区二区久久久久 | 国产乱码精品一区二区三区亚洲人 | 国产免费av一区 | av在线免费播放网站 | www视频在线观看网站 | 欧美 亚洲 | 97成人精品视频在线观看 | 网址在线观看你懂的 | 国产精品96 | 91黄色大片 | 97精品国产97久久久久久春色 | 狠狠躁夜夜躁人人爽视频 | 中文字幕一级二级三级 | 最新自拍偷拍 | 国产免费脚交足视频在线观看 | 日本猛少妇色xxxxx | 鲁一鲁一鲁一鲁一av | 国产欧美视频在线播放 | 亚洲 国产 欧美 日韩 | 久久三级视频 | 久久久久中文字幕 | 后入内射欧美99二区视频 | 国产精品一区二区三区久久久 | 中文字幕+乱码+中文乱 | av免费毛片 | 一区二区三区小视频 | 久久三级精品 | 狠狠爱综合网 | 一区影视 | 中文字幕在线视频一区二区 | 亚洲国产精品无码专区 | 日本亲近相奷中文字幕 | 日日爽 | www黄色大片 | 久久久久亚洲av成人人电影 | 午夜宅男影院 | 亚洲第一女人av | 亚洲天堂成人av | 国产一级特黄 | www.婷婷色 | 干美女av| 无码av免费精品一区二区三区 | 欧美又粗又深又猛又爽啪啪九色 | 亚洲欧洲日韩综合 | 无码国产精品久久一区免费 | 亚洲裸体网站 | 青草福利 | 亚洲天堂精品在线 | 免费在线看污片 | 色无极在线 | 婷婷干|