UISwitch控件代表一個開關按鈕,用于處理布爾值。可通過監控ValueChange
事件來檢測開關按鈕的狀態切換,也可通過屬性on
或實例方法isOn
來獲取當前值。
- (IBAction)backChange:(UISwitch *)sender { if ([sender isOn]) { [self.view setBackgroundColor:[UIColor whiteColor]]; } else { [self.view setBackgroundColor:[UIColor blackColor]]; }}
分段控件提供一欄按鈕,每次只能激活其中一個按鈕。常用語在不同類別的信息之間選擇,或在不同的屏幕之間切換。
支持的屬性:
效果圖:
主要實現代碼:
- (IBAction)segmentChanged:(UISegmentedControl *)sender { switch ([sender selectedSegmentIndex]) { case 0: [self.view setBackgroundColor:[UIColor redColor]]; break; case 1: [self.view setBackgroundColor:[UIColor greenColor]]; break; case 2: [self.view setBackgroundColor:[UIColor blueColor]]; break; case 3: [self.view setBackgroundColor:[UIColor purpleColor]]; break; default: break; }}- (IBAction)add:(UIButton *)sender { NSUInteger count = self.seg1.numberOfSegments; NSString* title = self.tv.text; if([title length] > 0) { [self.seg1 insertSegmentWithTitle:title atIndex:count animated:YES]; } }- (IBAction)remove:(UIButton *)sender { NSUInteger count = self.seg1.numberOfSegments; [self.seg1 removeSegmentAtIndex:count-1 animated:YES];}
代表一個圖片顯示控件,直接繼承UIView,沒有繼承UIControl。
可以通過如下兩個屬性訪問或設置控件顯示的圖片:
image:
訪問或設置該控件顯示的圖片highlightedImage
訪問或設置該控件處于高亮狀態時顯示的圖片還可以使用動畫顯示一組圖片,主要屬性和方法如下:
animationImages:
訪問或設置該UIImageView需要動畫顯示的多張圖片。NSArrayhighlightedAnimationImages:
訪問或設置該UIImageView 高亮狀態下需要動畫顯示的多張圖片。該屬性是一個NSArray對象。animationDuratin:
訪問或設置 動畫持續時間animationRepeatCount:
訪問或設置動畫持續次數startAnimating:
開始播放動畫isAnimating:
該方法判斷該UIImageView是否播放動畫效果圖:
NSArray * images;NSArray * images1;int curImage;CGFloat alpha;-(void) viewDidLoad{ [super viewDidLoad]; curImage = 0; alpha = 1.0; images = [NSArray arrayWithObjects:@"1.jpg",@"2.jpg",@"3.jpg" ,@"4.jpg",nil]; //啟動iv1控件的用戶交互,從而允許該控件能響應用戶手勢 self.iv1.userInteractionEnabled = YES; //創建一個輕擊的手勢檢測器 UITapGestureRecognizer * singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(clicked:)]; //為控件添加手勢 [self.iv1 addGestureRecognizer:singleTap]; /* *幻燈片播放 */ self.iv3.animationImages=[NSArray arrayWithObjects: [UIImage imageNamed:@"1.jpg"], [UIImage imageNamed:@"2.jpg"], [UIImage imageNamed:@"3.jpg"], [UIImage imageNamed:@"4.jpg"],nil ]; //設置動畫總時間 self.iv3.animationDuration=1.0; //設置重復次數,0表示不重復 self.iv3.animationRepeatCount=0; //開始動畫 [self.iv3 startAnimating]; }- (IBAction)plus:(UIButton *)sender { alpha += 0.2; if(alpha >= 1.0) { alpha = 1.0; } self.iv1.alpha = alpha;}- (IBAction)minus:(UIButton *)sender { alpha -= 0.2; if(alpha <= 0.0) { alpha = 0.0; } self.iv1.alpha = alpha;}- (IBAction)next:(UIButton *)sender { self.iv1.image = [UIImage imageNamed:[images objectAtIndex:(++curImage % images.count)]];}-(void) clicked:(UIGestureRecognizer*)getureRecognizer{ //獲取正在顯示的原始圖片 UIImage * srcImage = self.iv1.image; //獲取用戶手指在iv1控件上的觸碰點 CGPoint pt = [getureRecognizer locationInView:self.iv1]; //獲取正在顯示的原圖對應的CGImageRef CGImageRef sourceImageRef = [srcImage CGImage]; //獲取圖片實際大小與第一個UIImageView的縮放比例 CGFloat scale = srcImage.size.width / 320; //將iv控件上的觸碰點的左邊換算成原始圖片上的位置 CGFloat x = pt.x * scale; CGFloat y = pt.y * scale; if(x + 120 > srcImage.size.width) { x = srcImage.size.width -140; } if(y+ 120 > srcImage.size.height) { y = srcImage.size.height - 140; } CGImageRef newImageRef = CGImageCreateWithImageInRect(sourceImageRef, CGRectMake(x,y, 140, 140)); self.iv2.image = [UIImage imageWithCGImage:newImageRef];}
包括UiprogressView和UIActivityIndicatorView,前者顯示 百分比,后者顯示衣蛾旋轉的齒輪。
UIProgressView繼承UIView。
支持的主要屬性:
表示任務正在進行中,該控件顯示一個旋轉的進度換,不精確顯示百分比。
支持的屬性:
Behavior
方法:
UISlider支持的屬性與UIProgressBar相似。UISlider支持高度定制,包括定制拖動條的軌道、以完成精度的外觀。
setMinimumTrackImage:forState:
設置拖動條已完成進度的軌道圖片setMaximumTrackImage:forState:
設置拖動條外完成進度軌道圖片setThumbImage:forState:
設置拖動條上滑塊的圖片新聞熱點
疑難解答