本篇主要向大家介紹剩下幾個較為常用的UI控件,主要包括UIActivityIndicatorView、
UIStepper具被、
UISegmentControl涌矢、
UIProgressView。
相關(guān)文章:
TextField相關(guān)基礎(chǔ)用法
若干搭建UI常用的小控件(一)
UIActivityIndicatorView
UIActivityIndicatorView在現(xiàn)在其實并不是個十分常用的UI控件,現(xiàn)在大部分的App都是通過第三方庫或者自己定制的控件來實現(xiàn)功能,但是因為次控件還是屬于一個較為基礎(chǔ)的控件,所以在本篇文章中還是要進(jìn)行簡單的介紹一下纫骑。
UIActivityIndicatorView繼承于UIView。
UIActivityIndicatorView* aiv = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
//初始化創(chuàng)建
UIActivityIndicatorViewStyleWhiteLarge //大白
UIActivityIndicatorViewStyleWhite //小白
UIActivityIndicatorViewStyleGray //小灰
aiv.transform = CGAffineTransformMakeScale(3, 5);
//修改大小九孩,使用變形屬性
aiv.bounds = CGRectMake(0, 0, 320, 480);
//bounds屬性的大小改不了先馆,所以應(yīng)該修改中心
- (void)startAnimating; //啟動動畫
- (void)stopAnimating; //停止動畫
- (BOOL)isAnimating; //判斷狀態(tài)
UIStepper
//創(chuàng)建stepper, 大小無用
UIStepper * stepper = [[UIStepper alloc] initWithFrame:CGRectMake(100, 100, 10, 10)];
//設(shè)置stepper最大值,最小值躺彬,當(dāng)前值
stepper.maximumValue = 100.0;
stepper.minimumValue = 0.0;
stepper.value = 60.0;
//設(shè)置變化間隔煤墙,默認(rèn)是1
stepper.stepValue = 0.5;
//設(shè)置按住梅惯,是否顯示自動增長,默認(rèn)YES
//當(dāng)自動增長設(shè)為NO時仿野,該屬性無效
//當(dāng)自動增長設(shè)為YES铣减,該屬性YES,可見增長脚作,NO葫哗,不可見增長
stepper.continuous = YES;
//設(shè)置是否自動增長
stepper.autorepeat = YES;
//設(shè)置是否首尾循環(huán)
stepper.wraps = NO;
//設(shè)置顏色
stepper.tintColor = [UIColor redColor];
//添加事件
[stepper addTarget:self action:@selector(valueChanged:) forControlEvents:UIControlEventValueChanged];
//stepper只能響應(yīng)valueChanged事件
//設(shè)置背景圖,圖片大球涛,stepper會變大
[stepper setBackgroundImage:[UIImage imageNamed:@"Image1"] forState:UIControlStateNormal];
[stepper setBackgroundImage:[UIImage imageNamed:@"Image2"] forState:UIControlStateHighlighted];
//設(shè)置中分線圖片(了解)
[stepper setDividerImage:[UIImage imageNamed:@"Image3"] forLeftSegmentState:UIControlStateHighlighted rightSegmentState:UIControlStateNormal];
//根據(jù)兩鍵狀態(tài)不同劣针,可以設(shè)置多張圖片
//獲取某個狀態(tài)的圖片
//因為每個狀態(tài)下可以有不同圖片,這個方法可以獲得個狀態(tài)圖片亿扁。
UIImage * image = [stepper dividerImageForLeftSegmentState:UIControlStateHighlighted rightSegmentState:UIControlStateNormal];
[stepper setDividerImage:image forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateHighlighted];
image = [[UIImage imageNamed:@"Image4"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
//設(shè)置加號(減號)圖片
[stepper setIncrementImage: image forState:UIControlStateNormal];
UISegmentControl
SegementControl是一個極為常用的UI控件捺典,多用在作為同一個頁面的不同分區(qū)等。
//創(chuàng)建items數(shù)組
NSArray * items = @[@"大傻", image, @"三大傻"];
//創(chuàng)建SC
UISegmentedControl * sc = [[UISegmentedControl alloc] initWithItems:items];
//添加坐標(biāo)
sc.frame = CGRectMake(50, 100, 200, 50);
//設(shè)置tintColor
sc.tintColor = [UIColor redColor];
//設(shè)置當(dāng)前選中的segment
sc.selectedSegmentIndex = 2;
//這個方法也可以判斷當(dāng)前選中的segment
//設(shè)置不能選中从祝,松手后還原
sc.momentary = YES;
//設(shè)置某個segment寬度
[sc setWidth:0 forSegmentAtIndex:1];
//如果這個值是YES襟己,設(shè)為0的segment寬度,自適應(yīng)
// sc.apportionsSegmentWidthsByContent = YES;
//設(shè)置某個segment無效
[sc setEnabled:NO forSegmentAtIndex:2];
//判斷某個segment是否有效
BOOL ret = [sc isEnabledForSegmentAtIndex:2];
NSLog(@"%d", ret);
//設(shè)置某個segment 標(biāo)題
[sc setTitle:@"都傻" forSegmentAtIndex:0];
//返回某個segment 標(biāo)題
//- (NSString *)titleForSegmentAtIndex:(NSUInteger)segment;
//設(shè)置某個segment 圖片
[sc setImage:image forSegmentAtIndex:2];
// - (UIImage *)imageForSegmentAtIndex:(NSUInteger)segment;
//返回圖片
//添加事件
[sc addTarget:self action:@selector(valueChanged:) forControlEvents:UIControlEventValueChanged];
//添加背景圖片
[sc setBackgroundImage:[UIImage imageNamed:@"10_0.jpg"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
//橫屏縱屏牍陌,可以設(shè)兩張背景
UIProgressView
UIProgressView在現(xiàn)在并不是十分常用擎浴,大部分情況下用于擁有音頻或者視頻播放功能的App。
同樣的呐赡,UIProgressView繼承于UIView退客。
//高設(shè)置無用
UIProgressView * pv = [[UIProgressView alloc] initWithFrame:CGRectMake(10, 400, 300, 10)];
pv.tag = 1;
//最大值是1骏融,最小值是0
//設(shè)置當(dāng)前值
pv.progress = 0;
//設(shè)置tintColor
pv.tintColor = [UIColor redColor];
pv.trackTintColor = [UIColor yellowColor];
//如果想要加寬進(jìn)度條
pv.transform = CGAffineTransformMakeScale(1, 10);
//如果想豎起進(jìn)度條
pv.transform = CGAffineTransformRotate(pv.transform, - M_PI_2);
//添加圖片 設(shè)置拉伸的豎線
UIImage * image1 = [[UIImage imageNamed:@"image1"] stretchableImageWithLeftCapWidth:5 topCapHeight:0];
UIImage * image2 = [[UIImage imageNamed:@"image2"] stretchableImageWithLeftCapWidth:50 topCapHeight:0];
pv.trackImage = image2;
pv.progressImage = image1;