一、UISlider(滑动条)及其属性
- (void)viewDidLoad {
[super viewDidLoad];
1、slider 滑动区域高度固定
UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(0, 64, 320, 20)];
slider.backgroundColor = [UIColor redColor];
[self.view addSubview:slider];
[slider release];
2、滑动条的最大值
slider.maximumValue = 1;
3、滑动块的位置
slider.value = 0;
注意:默认slider的最大值是1,value在0-1之间的float
[slider addTarget:self action:@selector(sliderValueChange:) forControlEvents:UIControlEventValueChanged];//值得改变事件是valueChanged
[slider addTarget:self action:@selector(sliderStop:) forControlEvents:UIControlEventTouchUpInside];
}
-(void)sliderValueChange:(UISlider*)slider
{
NSLog(@"%f",slider.value);
}
-(void)sliderStop:(UISlider*)slider
{
NSLog(@"哈哈哈哈哈哈哈哈哈%f",slider.value);
}
二、UIStepper(步进器)、UIProgressView(进度条)及其属性
- (void)viewDidLoad {
[super viewDidLoad];
1、stepper宽高设置无用
UIStepper *stepper = [[UIStepper alloc] initWithFrame:CGRectMake(0, 64, 320, 300)];
[self.view addSubview:stepper];
[stepper release];
2、最大值
stepper.maximumValue = 10;
[stepper addTarget:self action:@selector(stepperValueChange:) forControlEvents:UIControlEventValueChanged];
3、步进率(每点一下变多少)
stepper.stepValue = 2;
4、进度条
UIProgressView *progress = [[UIProgressView alloc] initWithFrame:CGRectMake(0, 120, 320, 20)];
[self.view addSubview:progress];
[progress release];
progress.tag = 11000;
//初始时进度
progress.progress = 0.0;
// Do any additional setup after loading the view, typically from a nib.
}
-(void)stepperValueChange:(UIStepper*)stepper
{
NSLog(@"%f",stepper.value);
UIProgressView *progress = (UIProgressView*)[self.view viewWithTag:11000];
progress.progress = stepper.value/10.0;//用步进器当前的值除以步进器的最大值,得到一个百分数
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
三、UITextView(文本输入框)及其属性——需要代理
文本输入框中的提示文字是由label贴上去的,当文本输入框编辑时,label隐藏,当文本输入框编辑完成并且输入框内没有输入,label不隐藏。
#import "ViewController.h"
@interface ViewController ()<UITextViewDelegate>//注意这里加UITextView的代理
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
[self makeBtn];
[self makeTextView];
// Do any additional setup after loading the view, typically from a nib.
}
-(void)makeBtn
{
UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btn.frame = CGRectMake(self.view.frame.size.width-80, 64, 60, 20);
[btn setTitle:@"完成" forState:UIControlStateNormal];
[btn addTarget:self action:@selector(btnDown) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn];
}
-(void)btnDown
{
//1、找到textView
UITextView *text = (UITextView*)[self.view viewWithTag:7000];
//2、结束textView的编辑
[text resignFirstResponder];
}
-(void)makeTextView
{
UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(10, 90, 300, self.view.frame.size.height-100)];
[self.view addSubview:textView];
textView.backgroundColor = [UIColor yellowColor];
textView.delegate = self;
[textView release];
textView.tag = 7000;
UILabel *label = [[UILabel alloc] initWithFrame:textView.bounds];
label.text = @"请在这里输入您的留言...";
[textView addSubview:label];
[label release];
label.tag = 2000;
label.userInteractionEnabled = NO;
特别注意:userInteractionEnabled,yes时,上面的东西可用,NO时,下面的东西可用
}
//开始编辑的代理方法
-(void)textViewDidBeginEditing:(UITextView *)textView
{
UILabel *lab = (UILabel*)[self.view viewWithTag:2000];
lab.hidden = YES;
}
四、UISwitch(开关)、UIActivityIndicatorView(小转圈)及其属性
- (void)viewDidLoad {
[super viewDidLoad];
1、宽高无用
UISwitch *sw = [[UISwitch alloc] initWithFrame:CGRectMake(0, 64, 320, 300)];
[self.view addSubview:sw];
[sw release];
2、开关属性
sw.on = YES;
[sw addTarget:self action:@selector(switchValueChange:) forControlEvents:UIControlEventValueChanged];
self.view.backgroundColor = [UIColor blackColor];
3、小转圈
UIActivityIndicatorView *avi = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0, 150, 320, 200)];
avi.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhiteLarge;
[self.view addSubview:avi];
[avi release];
avi.tag = 12000;
[avi startAnimating];//开始转
// Do any additional setup after loading the view, typically from a nib.
}
-(void)switchValueChange:(UISwitch*)sw
{
NSLog(@"%d",sw.on);
UIActivityIndicatorView *avi = (UIActivityIndicatorView*)[self.view viewWithTag:12000];
if(sw.on)//判断switch是开还是管
{//开
[avi startAnimating];//开转
}
else
{//关
[avi stopAnimating];//停转
}
}
五、UISegmentedControl(单选器)及其属性
- (void)viewDidLoad {
[super viewDidLoad];
NSArray *titleArr = @[@"pp",@"qq",@"oo",@"lily"];
1、用数组来初始化一个segment
UISegmentedControl *seg = [[UISegmentedControl alloc] initWithItems:titleArr];
seg.frame = CGRectMake(0, 64, 320, 40);
[self.view addSubview:seg];
[seg release];
2、segment的选中属性,表示正被选中的那个元素的下标
seg.selectedSegmentIndex = 2;
[seg addTarget:self action:@selector(segmentValueChange:) forControlEvents:UIControlEventValueChanged];
}
-(void)segmentValueChange:(UISegmentedControl*)seg
{
3、获得seg被选中的元素的下表,从而根据下标的不同而进行不同的操作
NSLog(@"%d",seg.selectedSegmentIndex);
}
六、UIActionSheet(上推菜单)、UIAlertView(警报)及其属性——需要代理
#import "ViewController.h"
@interface ViewController ()<UIActionSheetDelegate,UIAlertViewDelegate>//注意这里加UIActionSheet、UIAlertView的代理
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//做两个按钮,一个按钮触发actionsheet,一个按钮触发警报
[self makeTwoBtn];
// Do any additional setup after loading the view, typically from a nib.
}
-(void)makeTwoBtn
{
NSArray *arr = @[@"actionsheet",@"alertview"];
for(int i = 0;i<arr.count;i++)
{
UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btn.frame = CGRectMake(0, 64+i*40, 320, 30);
[btn setTitle:arr[i] forState:UIControlStateNormal];
[btn addTarget:self action:@selector(btnDown:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn];
btn.tag = 1000+i;
}
}
-(void)btnDown:(UIButton*)btn
{
switch (btn.tag) {
case 1000://sheet
{
UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:@"工资收入" delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:@"pp" otherButtonTitles:@"0-1000",@"1000-5000",@"5000-10000",@"10000-20000",@"20000-30000",@"30000以上", nil];
//第一个参数是actionsheet的标题,第二个参数是代理由谁来遵守执行,第三个参数是取消按钮的title,第四个参数是重点按钮的title,最后一个参数是剩下的按钮的title
[sheet showInView:self.view];
//显示actionsheet的方法,用actionsheet调用showInView的方法,参数是要显示这个actionsheet的父视图
[sheet release];
break;
}
case 1001://alert
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"警报" message:@"您的网络不好,换个地方使这个应用!" delegate:self cancelButtonTitle:@"好的" otherButtonTitles:@"不好", nil];
[alert show];
[alert release];
break;
}
default:
break;
}
}
#pragma mark actionsheet的代理
//当点击任意一个actionsheet上的按钮后会触发下面代理
-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
NSLog(@"%d",buttonIndex);
}
#pragma mark alertview的代理
//当点击任意一个alertview上的按钮后会触发下面代理
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
NSLog(@"%d",buttonIndex);
}
七、使用UISlider制作图片放大缩小的功能
-(void)makeUI
{
UIImageView *img = [[UIImageView alloc] initWithFrame:CGRectMake(0, 64, 160, 160)];
img.image = [UIImage imageNamed:@"2@2x.png"];
[self.view addSubview:img];
[img release];
img.tag = 3000;
UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(0, self.view.frame.size.height-30, 320, 30)];
slider.maximumValue = 2.0;
slider.value = 1;
[self.view addSubview:slider];
[slider release];
[slider addTarget:self action:@selector(sliderValueChange:) forControlEvents:UIControlEventValueChanged];
}
-(void)sliderValueChange:(UISlider*)slider
{
UIImageView *tempView = (UIImageView*)[self.view viewWithTag:3000];
tempView.frame = CGRectMake(0, 64, 160*slider.value, 160*slider.value);
}
八、实时获取文本框输入的内容
- (void)viewDidLoad {
[super viewDidLoad];
UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(0, 64, 320, 40)];
textField.borderStyle = UITextBorderStyleLine;
textField.delegate = self;
[self.view addSubview:textField];
[textField release];
//给textField添加一个事件
[textField addTarget:self action:@selector(textFieldEditChange:) forControlEvents:UIControlEventEditingChanged];//事件是编辑内容改变
// Do any additional setup after loading the view, typically from a nib.
}
当输入框内容改变时,会调用这个方法
//-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
//{
// NSLog(@"%@",textField.text);
// return YES;
//}
-(void)textFieldEditChange:(UITextField*)textField
{
NSLog(@"%@",textField.text);
}