【IOS 开发】基本 UI 控件详解 (UISegmentedControl | UIImageView | UIProgressView | UISlider | UIAlertView )
轉載請注明出處 :?http://blog.csdn.net/shulianghan/article/details/50163725
一. 分段控件 (UISegmentedControl)
控件展示 :?
1. UISegmentedControl 控件屬性
(1) Style 屬性
Style 屬性 :?
? ? ?
-- Plain : 分段控件使用最普通的風格;
-- Bordered : 在最普通風格上添加一圈邊框;
-- Bar : 分段控件使用工具條風格;
(2) State 屬性
State 屬性 :?
-- Momentary 復選框 : 勾選復選框后, 分段控件不保存控件狀態, 如果勾選后, 點擊時高亮, 點擊后恢復原樣;
(3) Tint 屬性
Tint 屬性 :?
-- 作用 : 設置分段控件被選中的高亮顏色;
-- 效果展示 :?
(4) Segments 屬性
Segments 屬性 :?
-- 作用 : 控制分成幾段;
-- 展示效果 :?
(5) Segment 屬性
Segment 屬性 :?
? ?? ?
-- 作用 : 為不同的分段設置對應的 標題, 圖片 等內容;
(6) Tittle 屬性
Tittle 屬性 : 每個 Segment 都有一個 Tittle 屬性, 就是分段按鈕每個按鈕的標題;
(7) Image 屬性
Image 屬性 : 為不同的 分段 Segment 設置圖片;
(8) Behavior 屬性
Behavior 屬性 :?
-- Enable 復選框 : 用于設置 Segment 是否可用;
-- Selected 復選框 : 用于設置 Segment 是否被選中;
2. 使用 UISegmentedControl 改變背景顏色
(1) 設置 UISegmentedControl 屬性
UISegmentedControl 屬性 :?
-- 屬性截圖 :?
(2) 設置 UISegmentedControl 響應方法
創建 UISegmentedControl 的 IBAction :?
-- 按住 control 鍵將 UISegmentedControl 拖動到 OCViewController.h 中 :?
-- 設置 IBAction 屬性 :?
-- 方法代碼 :?
- (IBAction)segmentControl:(id)sender {int index = [sender selectedSegmentIndex];switch (index) {case 0:self.baseView.backgroundColor = [UIColor whiteColor];break;case 1:self.baseView.backgroundColor = [UIColor blackColor];break;case 2:self.view.backgroundColor = [UIColor greenColor];break;case 3:self.view.backgroundColor = [UIColor blueColor];break;default:break;} }
(3) 代碼示例
代碼示例 :?
-- OCViewController.h :?
// // OCViewController.h // UISegmentedControl // // Created by octopus on 15-12-4. // Copyright (c) 2015年 www.octopus.org.cn. All rights reserved. //#import <UIKit/UIKit.h>@interface OCViewController : UIViewController //背景 UIView @property (strong, nonatomic) IBOutlet UIView *baseView; - (IBAction)segmentControl:(id)sender;@end
-- OCViewController.m :?
// // OCViewController.m // UISegmentedControl // // Created by octopus on 15-12-4. // 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)segmentControl:(id)sender {int index = [sender selectedSegmentIndex];switch (index) {case 0:self.baseView.backgroundColor = [UIColor whiteColor];break;case 1:self.baseView.backgroundColor = [UIColor blackColor];break;case 2:self.view.backgroundColor = [UIColor greenColor];break;case 3:self.view.backgroundColor = [UIColor blueColor];break;default:break;} } @end
-- 界面展示 :?
3. 動態增加刪除分段
(1) 主要 API 簡介
插入 刪除分段 :?
-- 插入分段 : 調用 segmentControl 的 insertSegmentWithTittle 方法, 參數一 標題, 參數二 插入索引;
[self.segmentControl insertSegmentWithTitle:tittle atIndex:count animated:YES];
-- 刪除分段 : 刪除只需注明 索引值 即可;
[self.segmentControl removeSegmentAtIndex:count - 1 animated:YES];
(2) 源碼示例
源碼示例 :?
-- 界面設計文件 :?
-- OCViewController.h :?
// // OCViewController.h // UISegmentedControl // // Created by octopus on 15-12-4. // Copyright (c) 2015年 www.octopus.org.cn. All rights reserved. //#import <UIKit/UIKit.h>@interface OCViewController : UIViewController //背景 UIView @property (strong, nonatomic) IBOutlet UIView *baseView; //分段控件 @property (strong, nonatomic) IBOutlet UISegmentedControl *segmentControl; //單行文本 @property (strong, nonatomic) IBOutlet UITextField *textField;//分段控件方法 - (IBAction)segmentControl:(id)sender; //點擊背景控件方法 - (IBAction)clickBackGround:(id)sender;//添加分段控件 - (IBAction)addSegment:(id)sender; //刪除分段控件 - (IBAction)minusSegment:(id)sender;@end
-- OCViewController.m :?
// // OCViewController.m // UISegmentedControl // // Created by octopus on 15-12-4. // 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)segmentControl:(id)sender {int index = [sender selectedSegmentIndex];switch (index) {case 0:self.baseView.backgroundColor = [UIColor whiteColor];break;case 1:self.baseView.backgroundColor = [UIColor blackColor];break;case 2:self.view.backgroundColor = [UIColor greenColor];break;case 3:self.view.backgroundColor = [UIColor blueColor];break;default:break;} }- (IBAction)clickBackGround:(id)sender {// 點擊背景 取消虛擬鍵盤[self.textField resignFirstResponder]; }//添加分段控件 - (IBAction)addSegment:(id)sender {NSUInteger count = self.segmentControl.numberOfSegments;NSString * tittle = self.textField.text;if ([tittle length] > 0) {[self.segmentControl insertSegmentWithTitle:tittle atIndex:count animated:YES];self.textField.text = @"";} }//刪除分段控件 - (IBAction)minusSegment:(id)sender {NSUInteger count = self.segmentControl.numberOfSegments;[self.segmentControl removeSegmentAtIndex:count - 1 animated:YES]; } @end
-- 界面展示 :?
二. 圖像控件 (UIImageView)
1. UIImageView 控件屬性
(1) UIImageView 簡介
UIImageView 簡介 :?
-- 繼承結構 : UIImageView 繼承 UIView, 該類不能響應用戶操作, 是靜態控件, (活動控件 靜態控件 被動控件);
(2) 圖片顯示屬性
設置圖片顯示的屬性 :?
-- image (普通) : 訪問或設置該控件顯示的圖片;
-- HighlightedImage (高亮) : 設置圖片處于 高亮狀態 時顯示的圖片;
(3) 動畫顯示方法
UIImageView 動畫顯示方法 :?
-- animationImages : 設置一個 NSArray 對象, 需要顯示多張圖片;
-- highlightedAnimationImages : 設置 高亮狀態 顯示的多張圖片;
-- animationDuration : 設置 UIImageView 動畫持續時間;
-- animationRepeatCount : 設置 UIImageView 動畫重復次數;
-- startAnimating : 開始播放動畫;
-- stopAnimating : 停止播放動畫;
-- isAnimating : 判斷 UIImageView 是否正在播放動畫;
(4) UIImageView 縮放屬性
UIImageView 縮放屬性 :?
? ? ?
-- Scale To Fill : 不保持 縱橫縮放比, 圖片完全自適應 UIImageView 控件;
-- Aspect Fit : 保持縱橫比縮放, 保證圖片長邊完全顯示出來, 完整顯示圖片;
-- Aspect Fill : 保持縱橫比縮放, 保證圖片短邊能顯示出來, 只在水平或垂直方向某一個方向是完整的, 另一個方向截取;
-- Center : 不縮放圖片, 顯示圖片的中間區域;
-- Top : 不縮放圖片, 顯示圖片的頂部區域;
-- Bottom : 不縮放圖片, 顯示圖片底部區域;
-- Left : 不縮放圖片, 顯示圖片左邊區域;
-- Right : 不縮放圖片, 顯示圖片右邊區域;
-- Top Left : 不縮放圖片, 顯示圖片左上區域;
-- Top Right :?不縮放圖片, 顯示圖片右上區域;
-- Bottom Left :?不縮放圖片, 顯示圖片左下區域;
-- Bottom Right :?不縮放圖片, 顯示圖片右下區域;
2. 圖片瀏覽器示例
(1) API 簡介
手勢事件 :?
-- 設置手勢點擊響應 : 每個 UIView 都有一個 userInteractionEnabled 屬性為 YES;
//設置大圖片可以相應手勢點擊self.bigPicture.userInteractionEnabled = YES;
-- 創建手勢識別器 : 創建 UITapGestureRecognizer 手勢識別器, initWithTarget 表示手勢響應方法的類, action 對應方法的 selector 方法;
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(click:)];
-- 為 UIView 添加手勢識別器 : 調用 UIView 的 addGestureRecognizer 方法;
[self.bigPicture addGestureRecognizer:tap];
-- 設置 UIImageView 圖片 :?
self.bigPicture.image = [UIImage imageNamed:[images objectAtIndex:currentImage%images.count]];
-- 設置透明度 :?
self.bigPicture.alpha = alpha;
-- 獲取手指觸摸位置 :?
//獲取手指觸摸的位置CGPoint point = [recognizer locationInView:self.bigPicture];
-- 獲取圖片對應的 CGImageRef :?
//獲取原圖對應的 CGImageRefCGImageRef imageRef = [srcImage CGImage];
-- 根據一個圖片創建新的 CGImageRef :?
//創建新的圖片CGImageRef newImageRef = CGImageCreateWithImageInRect(imageRef, CGRectMake(x, y, 140, 140));
-- 根據 CGImageRef 創建 UIImage :?
[UIImage imageWithCGImage:newImageRef];
(2) 代碼示例
代碼示例 :?
-- 界面設計文件 :?
-- OCViewController.h :?
// // OCViewController.h // UIImageView // // Created by octopus on 15-12-7. // Copyright (c) 2015年 www.octopus.org.cn. All rights reserved. //#import <UIKit/UIKit.h>@interface OCViewController : UIViewController//大圖片的 UIImageView @property (strong, nonatomic) IBOutlet UIImageView *bigPicture; //小圖片的 UIImageView @property (strong, nonatomic) IBOutlet UIImageView *smallPicture;//UISegmentedControl 的方法 - (IBAction)segmentControl:(id)sender;@end
-- OCViewController.m :?
// // OCViewController.m // UIImageView // // Created by octopus on 15-12-7. // Copyright (c) 2015年 www.octopus.org.cn. All rights reserved. //#import "OCViewController.h"@interface OCViewController ()@end@implementation OCViewController//圖片集合 NSArray * images; //當前顯示的圖片 int currentImage; //透明度 CGFloat alpha;- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.//初始化變量currentImage = 0;alpha = 1.0;images = [NSArray arrayWithObjects:@"1.png" , @"2.jpg", @"3.png", nil];//設置大圖片可以相應手勢點擊self.bigPicture.userInteractionEnabled = YES;UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(click:)];[self.bigPicture addGestureRecognizer:tap];}- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated. }- (IBAction)segmentControl:(id)sender {int index = [sender selectedSegmentIndex];switch (index) {case 0: //透明度+alpha += 0.1;if(alpha > 1.0){alpha = 1.0;}self.bigPicture.alpha = alpha;break;case 1: //透明度-NSLog(@"1");alpha -= 0.1;if(alpha < 0){alpha = 0;}self.bigPicture.alpha = alpha;break;case 2: //下一張圖片NSLog(@"2");self.bigPicture.image = [UIImage imageNamed:[images objectAtIndex:currentImage%images.count]];currentImage ++;break;default:break;} }- (void) click : (UIGestureRecognizer * ) recognizer{//獲取正在顯示的圖片UIImage * srcImage = self.bigPicture.image;//獲取手指觸摸的位置CGPoint point = [recognizer locationInView:self.bigPicture];//獲取原圖對應的 CGImageRefCGImageRef imageRef = [srcImage CGImage];//獲取縮放比例CGFloat scale = srcImage.size.width / 320;//獲取圖片位置CGFloat x = point.x * scale;CGFloat y = point.y * scale;//驗證 x y 坐標, 不要超出邊界if (x + 120 > srcImage.size.width - 140) {x = srcImage.size.width - 140;}if (y + 120 > srcImage.size.height) {y = srcImage.size.height - 140;}//創建新的圖片CGImageRef newImageRef = CGImageCreateWithImageInRect(imageRef, CGRectMake(x, y, 140, 140));self.smallPicture.image = [UIImage imageWithCGImage:newImageRef];} @end
-- 界面展示 :?
3. 幻燈片放映
(1) API 簡介
幻燈片播放相關 API :?
-- 設置 UIImage 數組給 UIImageView :?
images = [NSArray arrayWithObjects:[UIImage imageNamed:@"1.png"],[UIImage imageNamed:@"2.jpg"],[UIImage imageNamed:@"3.png"],nil];self.imageView.animationImages = images;
-- 設置動畫的間隔 和 次數 :?
//設置 UIImageView 動畫間隔self.imageView.animationDuration = 5;//設置動畫重復次數self.imageView.animationRepeatCount = 0xFFFF;
-- 啟動動畫 :?
//啟動動畫[self.imageView startAnimating];
(2) 代碼示例
代碼示例 :?
-- 界面設計文件 :?
-- OCViewController.h :?
// // OCViewController.h // UIimageView2 // // Created by octopus on 15-12-9. // Copyright (c) 2015年 www.octopus.org.cn. All rights reserved. //#import <UIKit/UIKit.h>@interface OCViewController : UIViewController @property (strong, nonatomic) IBOutlet UIImageView *imageView;@end
-- OCViewController.m :?
// // OCViewController.m // UIimageView2 // // Created by octopus on 15-12-9. // Copyright (c) 2015年 www.octopus.org.cn. All rights reserved. //#import "OCViewController.h"@interface OCViewController ()@end@implementation OCViewControllerNSArray * images;- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.//創建 UIImageView 集合images = [NSArray arrayWithObjects:[UIImage imageNamed:@"1.png"],[UIImage imageNamed:@"2.jpg"],[UIImage imageNamed:@"3.png"],nil];//設置集合給 UIImageView 的動畫self.imageView.animationImages = images;//設置 UIImageView 動畫間隔self.imageView.animationDuration = 5;//設置動畫重復次數self.imageView.animationRepeatCount = 0xFFFF;//啟動動畫[self.imageView startAnimating];}- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated. }@end
-- 界面展示 :?
三. 進度條控件 (UIProgressView)
1. UIProgressView 控件屬性
UIProgressView 屬性截圖 :?
(1) Style 屬性
Style 屬性 :?
-- Default : 使用默認風格的進度條;
-- Bar : 工具條風格;
(2) progress 屬性
Progress 屬性 : 設置已進行的進度的比例值, 取值范圍 0.0 ~ 1.0;
(3) Progress Tint 屬性
Progress Tint 屬性 : 已完成的顏色;
(4) Track Tint 屬性
Track Tint 屬性 : 進度條軌道顏色;
(5) progressImage 屬性
ProgressImage 屬性 : 設置進度條完成的圖片;
-- 注意 : 該屬性在 Interface Builder 中沒有體現出來;
(6) trackImage 屬性
trackImage 屬性 : 設置進度條軌道圖片;
-- 注意 : 代碼中設置, 界面設計文件中無該屬性;
2. 可拉伸圖片
(1) 可拉伸圖片用法
可拉伸圖片作用 : 在上述進度條中, 設置的 progressImage 和 trackImage 必須是可拉伸圖片;
(2) 可拉伸圖片創建
創建可拉伸圖片 : 使用 UIImage 創建 可拉伸圖片, 通過 UIEdgeInsets 結構體定義圖片拉伸區域;
-- UIEdgeInsets 結構體 : 包括 left, top, right, bottom 四個值;
-- 縮放主體 : 圖片縮放只在 UIEdgeInsets 定義的 四個屬性值 區域縮放, 圖片的中心部分是不進行縮放的;
3. 定制進度條示例
(1) 相關 API 簡介?
相關 API 簡介 :?
-- 創建可拉伸的 UIImage :?
UIImage * trackImage = [[UIImage imageNamed:@"Snip20151210_139.png"] resizableImageWithCapInsets:UIEdgeInsetsZero resizingMode:UIImageResizingModeTile];
-- 為進度條設置可拉伸圖片 :?
//將可拉伸圖片設置給進度條self.progress3.progressImage = progressImage;self.progress3.trackImage = trackImage;-- 創建定時器 :?
//定時器timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(doProgress) userInfo:nil repeats:YES];
(2) 代碼示例
代碼示例 :?
-- 界面設計文件 :?
-- OCViewController.h :?
// // OCViewController.h // UIProgressView // // Created by octopus on 15-12-10. // Copyright (c) 2015年 www.octopus.org.cn. All rights reserved. //#import <UIKit/UIKit.h>@interface OCViewController : UIViewController@property (strong, nonatomic) IBOutlet UIProgressView *progress1; @property (strong, nonatomic) IBOutlet UIProgressView *progress2; @property (strong, nonatomic) IBOutlet UIProgressView *progress3; - (IBAction)click:(id)sender; @end
-- OCViewController.m :?
// // OCViewController.m // UIProgressView // // Created by octopus on 15-12-10. // Copyright (c) 2015年 www.octopus.org.cn. All rights reserved. //#import "OCViewController.h"@interface OCViewController ()@end@implementation OCViewController//定時器 NSTimer * timer; //進度條進度 CGFloat progress;/*CGFloat : 是 float 類型, 在 IOS 中定義了下面的類型 -- 32 位 : typedef float CGFloat;// 32-bit-- 64 位 : typedef double CGFloat;// 64-bitCGPoint : 二維坐標點;-- 定義代碼 : struct CGPoint {CGFloat x;CGFloat y;};typedef struct CGPoint CGPoint;CGSize : 矩形的寬度和高度;-- 定義代碼 : struct CGSize {CGFloat width;CGFloat height;};typedef struct CGSize CGSize;CGRect : 矩形的位置和大小;-- 定義代碼 : struct CGRect {CGPoint origin;CGSize size;};typedef struct CGRect CGRect;*/- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.//創建 可拉伸的圖片, 平鋪樣式UIImage * trackImage = [[UIImage imageNamed:@"Snip20151210_139.png"] resizableImageWithCapInsets:UIEdgeInsetsZero resizingMode:UIImageResizingModeTile];UIImage * progressImage = [[UIImage imageNamed:@"Snip20151210_140.png"] resizableImageWithCapInsets:UIEdgeInsetsZero resizingMode:UIImageResizingModeTile];//將可拉伸圖片設置給進度條self.progress3.progressImage = progressImage;self.progress3.trackImage = trackImage;}- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated. }- (IBAction)click:(id)sender {//進度條progress = 0;//定時器timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(doProgress) userInfo:nil repeats:YES];}- (void) doProgress{progress += 0.1;if(progress > 1.0){[timer invalidate];}else{[self.progress1 setProgress:progress animated:YES];[self.progress2 setProgress:progress animated:YES];[self.progress3 setProgress:progress animated:YES];}}@end
-- 運行展示 : 可拉伸圖片效果沒有出現, 待調試;
四. 進度環控件 (UIActivityIndicatorView)
1. 進度環控件 (UIActivityIndicatorView) 屬性
UIActivityIndicatorView 屬性截圖 :?
(1) Style 屬性
Style 屬性 :?
-- Large White : 大的 白色 風格;
-- White : 白色風格;
-- Gray : 灰色風格;
(2) Color 屬性
Color 屬性 :?
-- 作用 : 設置進度條的顏色, 設置該屬性會覆蓋之前選中的風格中的顏色;
(3) Behavior 屬性
Behavior 屬性 :?
-- Animating : 顯示出來后立即轉動;
-- Hides When Stopped : 停止時自動隱藏;
(4) UIActivityIndicatorView 大小
兩種大小 :?
-- 標準風格 : 像素值 20 x 20;
-- 大風格 : 像素值 37 x 37;
(5) 控制方法
UIActivityIndicatorView 控制方法 :?
-- 開始轉動 : startAnimating 方法;
-- 停止轉動 : stopAnimating 方法;
2. UIActivityIndicatorView 代碼示例
(1) 創建 IBOutletConnection
創建 IBOutletConnection :?
-- 按住 Option 鍵 將一個元素拖動到 OCViewController.h 中 : 其中的 Connection 屬性, 不要選擇 IBOutlet 屬性, 選擇 IBOutletConnection 屬性;
-- 將想要添加到 IBOutletConnection 中的控件拖動到 OCViewController.h 中的 IBOutletConnection 屬性變量上 :?
(2) 代碼示例
代碼示例 :?
-- 界面設計文件 :?
-- OCViewController.h :?
// // OCViewController.h // UIProgressView // // Created by octopus on 15-12-10. // Copyright (c) 2015年 www.octopus.org.cn. All rights reserved. //#import <UIKit/UIKit.h>@interface OCViewController : UIViewController@property (strong, nonatomic) IBOutlet UIProgressView *progress1; @property (strong, nonatomic) IBOutlet UIProgressView *progress2; @property (strong, nonatomic) IBOutlet UIProgressView *progress3;@property (strong, nonatomic) IBOutletCollection(UIActivityIndicatorView) NSArray *IndicatorCollection; - (IBAction)start:(id)sender; - (IBAction)end:(id)sender;- (IBAction)click:(id)sender; @end
-- OCViewController.m :?
// // OCViewController.m // UIProgressView // // Created by octopus on 15-12-10. // Copyright (c) 2015年 www.octopus.org.cn. All rights reserved. //#import "OCViewController.h"@interface OCViewController ()@end@implementation OCViewController//定時器 NSTimer * timer; //進度條進度 CGFloat progress;/*CGFloat : 是 float 類型, 在 IOS 中定義了下面的類型 -- 32 位 : typedef float CGFloat;// 32-bit-- 64 位 : typedef double CGFloat;// 64-bitCGPoint : 二維坐標點;-- 定義代碼 : struct CGPoint {CGFloat x;CGFloat y;};typedef struct CGPoint CGPoint;CGSize : 矩形的寬度和高度;-- 定義代碼 : struct CGSize {CGFloat width;CGFloat height;};typedef struct CGSize CGSize;CGRect : 矩形的位置和大小;-- 定義代碼 : struct CGRect {CGPoint origin;CGSize size;};typedef struct CGRect CGRect;*/- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.//創建 可拉伸的圖片, 平鋪樣式UIImage * trackImage = [[UIImage imageNamed:@"Snip20151210_139.png"] resizableImageWithCapInsets:UIEdgeInsetsZero resizingMode:UIImageResizingModeTile];UIImage * progressImage = [[UIImage imageNamed:@"Snip20151210_140.png"] resizableImageWithCapInsets:UIEdgeInsetsZero resizingMode:UIImageResizingModeTile];//將可拉伸圖片設置給進度條self.progress3.progressImage = progressImage;self.progress3.trackImage = trackImage;}- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated. }- (IBAction)start:(id)sender {for(int i = 0; i < 4; i ++){//從集合中獲取 UIActivityIndicatorView 控件并開啟動畫[[self.IndicatorCollection objectAtIndex:i] startAnimating];} }- (IBAction)end:(id)sender {for(int i = 0; i < 4; i ++){//從集合中獲取 UIActivityIndicatorView 控件并結束動畫[[self.IndicatorCollection objectAtIndex:i] stopAnimating];} }- (IBAction)click:(id)sender {//進度條progress = 0;//定時器timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(doProgress) userInfo:nil repeats:YES];}- (void) doProgress{progress += 0.1;if(progress > 1.0){[timer invalidate];}else{[self.progress1 setProgress:progress animated:YES];[self.progress2 setProgress:progress animated:YES];[self.progress3 setProgress:progress animated:YES];}}@end
-- 頁面展示效果 :?
五. 拖動條控件 (UISlider)
1. 拖動條控件 (UISlider) 簡介
屬性截圖 :?
(1) UISlider 圖片設置方法
UISlider 設置圖片方法 :?
-- 已完成進度軌道圖片 : "setMinimumTrackingImage : forState :";
-- 未完成進度軌道圖片 : "setMaximumTrackingImage : forState :";
-- 設置滑塊的圖片 : "setThumbImage : forState :";
2. 拖動條改變透明度示例
代碼示例 :?
-- 界面設計文件 :?
-- OCViewController.h :?
// // OCViewController.h // UISlider // // Created by octopus on 15-12-14. // Copyright (c) 2015年 www.octopus.org.cn. All rights reserved. //#import <UIKit/UIKit.h>@interface OCViewController : UIViewController @property (strong, nonatomic) IBOutlet UISlider *slid; @property (strong, nonatomic) IBOutlet UIImageView *image; - (IBAction)valueChange:(id)sender;@end-- OCViewController.m :?
// // OCViewController.m // UISlider // // Created by octopus on 15-12-14. // 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.[self.image setAlpha: 0]; }- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated. }- (IBAction)valueChange:(id)sender {[self.image setAlpha: self.slid.value]; } @end-- 運行展示 :?
四. 警告框控件 (UIAlertView)
1. 警告框控件 (UIAlertView) 簡介
(1) UIAlertView 創建流程
UIAlertView 創建流程 :?
-- 創建 UIAlertView : 創建時指定 標題, 內容, 按鈕等信息, 按鈕監聽需要創建 UIAlertView 的 UIAlertViewDelegate 委托對象;
-- 顯示 UIAlertView : 調用顯示 UIAlertView 的顯示方法;
-- 監聽按鈕 : 為委托對象實現 UIAlertViewDelegate 協議中的方法即可;
(2) UIAlertViewDelegate 協議方法
UIAlertViewDelegate 協議方法簡介 :?
-- "- (void) alertView : (UIAlertView *) alertView clickedButtonAtIndex : (NSInteger) buttonIndex :" 方法 : 用戶單擊對話框中的按鈕激發的方法, buttonIndex 是點擊的按鈕的索引;
-- "- (void) willPresentAlertView : (UIAlertView *) alertView" 方法 : 對話框將要顯示時激發該方法;
-- "- (void) didPresentAlertView : (UIAlertView *) alertView" 方法 : 對話框完全顯示出來后激發該方法;
-- "- (BOOL) alertViewShouldEnableFirstOtherButton : (UIAlertView *) alertView" 方法 : 對話框中除 cancel 按鈕之后的第一個按鈕被啟用回調該方法;
-- "- (void) alertView : (UIAlertView *) alertView willDissmissWithButtonIndex : (NSInteger) buttonIndex" 方法 : 單擊某按鈕將要隱藏警告框時激發該方法;
-- "- (void) alertView : (UIAlertView *) alertView didDissmissWithButtonIndex : (NSInteger) buttonIndex" 方法 : 單擊某個按鈕已經隱藏警告框后激發該方法;
-- "- (void) alertViewCancel : (UIAlertView * ) alertView " 方法 : 對話框被取消時激發的方法;
(3) UIAlertView 輸入框風格設置
UIAlertView 的 actionSheetStyle 屬性 :?
-- 主要作用 : 設置 UIAlertView 的風格, 取值是 枚舉值;
-- UIAlertViewStyleDefault 枚舉值 : 默認警告框風格;
-- UIAlertViewStyleSecureTextInput 枚舉值 : 警告框中有一個密碼輸入框;
-- UIAlertViewStylePlainTextInput 枚舉值 : 警告框中包含普通輸入框;
-- UIAlertViewStyleLoginAndPasswordInput 枚舉值 : 警告框中包含 用戶名 密碼輸入;
訪問輸入框方法 :?
-- "- (UITextField *) textFieldAtIndex : (NSInteger) textFieldIndex" : 獲取 索引值 為 textFieldIndex 的文本輸入框;
.
.
2. 簡單的對話框示例
(1) 創建 UIAlertView API
創建方法 :?
[[UIAlertView alloc] initWithTitle:<#(NSString *)#> message:<#(NSString *)#> delegate:<#(id)#> cancelButtonTitle:<#(NSString *)#> otherButtonTitles:<#(NSString *), ...#>, nil];
-- 參數一 : initWithTittle 對話框名稱;
-- 參數二 : message 對話框內容;
-- 參數三 : delegate 委托對象;
-- 參數四 : cancelButtonTittle 取消按鈕文字內容;
-- 參數五 : otherButtonTittles 其它按鈕文字內容;
-- 真實代碼 :?
/*創建 UIAlertView 控件, 傳入參數 標題 內容 委托對象 取消按鈕 其它按鈕*/UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"對話框標題" message:@"對話框內容" delegate:self cancelButtonTitle:@"取消顯示" otherButtonTitles:@"按鈕1", @"按鈕2", @"按鈕3", @"按鈕4", nil];
顯示對話框 : [UIAlertView show];
(2) 代碼示例
代碼示例 :?
-- 界面設計文件 :?
-- OCViewController.h :?
// // OCViewController.h // UIAlertView // // Created by octopus on 15-12-14. // Copyright (c) 2015年 www.octopus.org.cn. All rights reserved. //#import <UIKit/UIKit.h>@interface OCViewController : UIViewController <UIAlertViewDelegate> //按鈕的 IBAction 方法 - (IBAction)click:(id)sender;@end
-- OCViewController.m :?
// // OCViewController.m // UIAlertView // // Created by octopus on 15-12-14. // 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.}//點擊按鈕彈出 UIAlertView 對話框 - (IBAction)click:(id)sender {/*創建 UIAlertView 控件, 傳入參數 標題 內容 委托對象 取消按鈕 其它按鈕*/UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"對話框標題" message:@"對話框內容" delegate:self cancelButtonTitle:@"取消顯示" otherButtonTitles:@"按鈕1", @"按鈕2", @"按鈕3", @"按鈕4", nil];//調用該方法顯示 UIAlertView 控件[alert show]; }//實現的 UIAlertViewDelegate 協議中的方法 - (void) alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{NSString * msg = [NSString stringWithFormat:@"點擊了按鈕 %d", buttonIndex];UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"彈出框" message: msg delegate:nil cancelButtonTitle:@"取消" otherButtonTitles: nil];[alert show];} @end
-- 運行界面展示 :?
3. 警告框控件 (UIAlertView) 示例代碼
(1) 相關 API 簡介?
相關 API 簡介 :?
-- 設置 警告提示框 風格 :?
//設置提示框的風格 賬號密碼輸入alertView.alertViewStyle = UIAlertViewStyleLoginAndPasswordInput;
-- 設置輸入框鍵盤輸入類型 :?
//設置密碼輸入是數字鍵盤[alertView textFieldAtIndex:1].keyboardType = UIKeyboardTypeNumberPad;
-- 獲取指定索引的輸入框 :?
//獲取賬號輸入文本框UITextField * userNameField = [alertView textFieldAtIndex:0];
-- 生成警告提示框 :?
//創建一個帶 兩個按鈕的 提示框 確定 取消UIAlertView * alertView = [[UIAlertView alloc] initWithTitle:@"登錄" message:@"輸入用戶名密碼" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"確定", nil];
-- 顯示警告提示框 :?
//顯示警告提示框[alertView show];
(2) 示例代碼
示例代碼 :?
-- 界面設計文件 :?
-- OCViewController.h :?
// // OCViewController.h // TextFieldUIAlertView // // Created by octopus on 15-12-17. // Copyright (c) 2015年 www.octopus.org.cn. All rights reserved. //#import <UIKit/UIKit.h>@interface OCViewController : UIViewController <UIAlertViewDelegate> - (IBAction)click:(id)sender;@end
-- OCViewController.m :?
// // OCViewController.m // TextFieldUIAlertView // // Created by octopus on 15-12-17. // 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 {//創建一個帶 兩個按鈕的 提示框 確定 取消UIAlertView * alertView = [[UIAlertView alloc] initWithTitle:@"登錄" message:@"輸入用戶名密碼" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"確定", nil];//設置提示框的風格 賬號密碼輸入alertView.alertViewStyle = UIAlertViewStyleLoginAndPasswordInput;//設置密碼輸入是數字鍵盤[alertView textFieldAtIndex:1].keyboardType = UIKeyboardTypeNumberPad;//顯示警告提示框[alertView show]; }- (void) alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{if(buttonIndex == 1){//獲取賬號輸入文本框UITextField * userNameField = [alertView textFieldAtIndex:0];//獲取密碼輸入文本框UITextField * passwordField = [alertView textFieldAtIndex:1];//生成 一個 包含賬號 密碼 輸入的字符串NSString * content = [NSString stringWithFormat:@"用戶名為 : %@, 密碼為 : %@", userNameField.text, passwordField.text];//生成警告提示框UIAlertView * alertView = [[UIAlertView alloc] initWithTitle:@"標題" message:content delegate:nil cancelButtonTitle:@"確定" otherButtonTitles: nil];//顯示警告提示框[alertView show];}}- (void) willPresentAlertView:(UIAlertView *)alertView{//遍歷所有的 UIView 集合for(UIView * view in alertView.subviews){//如果類型是 UILabelif([view isKindOfClass:[UILabel class]]){//獲取 UILabel 控件UILabel * label = (UILabel *) view;//設置 UILabel 控件右對齊label.textAlignment = UITextAlignmentRight;}} }@end
-- 界面展示效果 :?
五. UIActionSheet 控件
1. UIActionSheet 簡介
(1) UIActionSheet 作用
UIActionSheet 作用 : 該控件是顯示在界面底部的按鈕列表, 該控件 有 一個標題 和 多個按鈕;
(2) UIActionSheet 按鈕
UIActionSheet 固定按鈕 :?
-- 取消按鈕 : 灰色背景, 主要用于取消該 UIActionSheet 控件顯示;
-- 銷毀按鈕 : 紅色背景, 用于刪除某記錄時, 使用該按鈕確認銷毀;
(3) UIActionSheet 風格
UIActionSheet 支持風格 :?
-- UIActionSheetStyleDefault : 灰色背景上顯示白色文字;
-- UIActionSheetStyleBlackTranselucent : 透明黑色背景上顯示白色文字;
-- UIActionSheetBlackOpaque : 純黑的背景上顯示白色文字;
2. UIActionSheet 示例代碼
UIActionSheet 示例代碼 :?
-- 界面設計文件 :?
-- OCViewController.h :?
// // OCViewController.h // UIActionSheet // // Created by octopus on 15-12-17. // Copyright (c) 2015年 www.octopus.org.cn. All rights reserved. //#import <UIKit/UIKit.h>@interface OCViewController : UIViewController <UIActionSheetDelegate> - (IBAction)click:(id)sender;@end
-- OCViewController.m :?
// // OCViewController.m // UIActionSheet // // Created by octopus on 15-12-17. // 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 {UIActionSheet * actionSheet = [[UIActionSheet alloc] initWithTitle:@"是否刪除" delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:@"確定" otherButtonTitles: @"按鈕一", @"按鈕二", nil];actionSheet.actionSheetStyle = UIActionSheetStyleAutomatic;[actionSheet showInView:self.view]; }- (void) actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{UIAlertView * alertView = [[UIAlertView alloc] initWithTitle:@"提示" message:[NSString stringWithFormat : @"點擊了第 %d 個按鈕", buttonIndex] delegate:nil cancelButtonTitle:@"取消" otherButtonTitles: nil];[alertView show]; } @end
-- 運行界面展示 :?
轉載請注明出處?:?http://blog.csdn.net/shulianghan/article/details/50163725
總結
以上是生活随笔為你收集整理的【IOS 开发】基本 UI 控件详解 (UISegmentedControl | UIImageView | UIProgressView | UISlider | UIAlertView )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【JavaEE WEB 开发】Tomca
- 下一篇: 【IOS 开发】基本 UI 控件详解 (