您的位置:首页 > 产品设计 > UI/UE

UI常用控件

2015-10-05 18:38 459 查看


UISwitch

//可以通过形变属性修改大小

sw.transform = CGAffineTransformMakeScale(2, 2);

//设置边框颜色

sw.tintColor = [UIColor yellowColor];

//设置打开时的颜色

sw.onTintColor = [UIColor blueColor];

//设置小白球的颜色

sw.thumbTintColor = [UIColor redColor];

//添加事件

[sw addTarget:self action:@selector(switchStatus:) forControlEvents:UIControlEventValueChanged];



UIActivityIndicatorView

UIActivityIndicatorView *aiv = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];

[self.view addSubview:aiv];

[aiv startAnimating];

//打开系统自带的网络加载指示视图

[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;



UISlider

//只有宽度有效

slider.frame = CGRectMake(0, 0, 300, 100);

//设置颜色

slider.minimumTrackTintColor = [UIColor greenColor];

slider.maximumTrackTintColor = [UIColor blackColor];

slider.thumbTintColor = [UIColor redColor];

//设置值

slider.minimumValue = 0.3;

slider.maximumValue = 1.0;

slider.value = 0.3;

//添加事件

[slider addTarget:self action:@selector(changeValue:) forControlEvents:UIControlEventValueChanged];

//设置是否在滑动时持续调用事件处理方法

slider.continuous = NO;



UIProgressView

UIProgressView *pv = [[UIProgressView alloc] initWithProgressViewStyle:UIProgressViewStyleBar];

//只有宽度有效

pv.frame = CGRectMake(0, 0, 300, 100);

//设置颜色

pv.trackTintColor = [UIColor whiteColor];

pv.progressTintColor = [UIColor blackColor];



UIStepper

//设置背景颜色

stepper.backgroundColor = [UIColor greenColor];

//设置前景颜色(包括边框)

stepper.tintColor = [UIColor redColor];

//设置值

stepper.minimumValue = 0;

stepper.maximumValue = 100;

stepper.stepValue = 1;

//添加事件

[stepper addTarget:self action:@selector(changeValue:) forControlEvents:UIControlEventValueChanged];

//设置跨越边界,默认不能跨越边界

stepper.wraps = YES;

//是否在改变时持续调用事件处理方法

//stepper.continuous = NO;

//长按时是否持续加减

stepper.autorepeat = NO;



UISegmentedControl

NSArray *items = @[@”小明”,@”小花”,@”小刚”];

UISegmentedControl *sc = [[UISegmentedControl alloc] initWithItems:items];

sc.frame = CGRectMake(0, 0, 300, 80);

//设置颜色

sc.backgroundColor = [UIColor greenColor];

sc.tintColor = [UIColor redColor];

//是否是临时状态

sc.momentary = YES;

//添加事件

[sc addTarget:self action:@selector(clickHandle:) forControlEvents:UIControlEventValueChanged];

- (void)clickHandle:(UISegmentedControl *)sc
{
NSInteger selectedIndex = sc.selectedSegmentIndex;
//在这里做事件分发
NSLog(@"selectedTitle:%@", [sc titleForSegmentAtIndex:selectedIndex]);
}




UIActionSheet

//存在代理方法(UIActionSheetDelegate)

UIActionSheet *as = [[UIActionSheet alloc] initWithTitle:@”分享” delegate:self cancelButtonTitle:@”取消” destructiveButtonTitle:@”删除” otherButtonTitles:@”QQ分享”,@”微信分享”,@”微博分享”,@”推特分享”, nil];

[as showInView:self.view];

//设置3秒后自动使用代码取消
//    [self performSelector:@selector(autoDismiss:) withObject:as afterDelay:3];
}

- (void)autoDismiss:(UIActionSheet *)as
{
[as dismissWithClickedButtonIndex:as.cancelButtonIndex animated:YES];
}

#pragma mark - 代理方法
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
//在这里做事件分发
NSLog(@"index:%ld", buttonIndex);
}






UIAlertView

UIAlertView *av = [[UIAlertView alloc] initWithTitle:@”⚠️” message:@”取款请尽快,10秒后吞卡” delegate:self cancelButtonTitle:@”不取了

#pragma mark - 代理方法
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (alertView.tag == 100) {
if (buttonIndex == 1) {
//点击'我要试试',创建新的警告框
UIAlertView *av = [[UIAlertView alloc] initWithTitle:@"正在取款..." message:@"赶紧呢亲,小心被吞卡" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];
//设置警告框风格
av.alertViewStyle = UIAlertViewStyleLoginAndPasswordInput;
av.tag = 200;
[av show];
//设置10s后自动消失,模拟吞卡操作
[self performSelector:@selector(dismissAfterTenSeconds:) withObject:av afterDelay:10];
}
} else if (alertView.tag == 200) {
NSString *login = [alertView textFieldAtIndex:0].text;
NSString *password = [alertView textFieldAtIndex:1].text;
NSLog(@"login:%@", login);
NSLog(@"password:%@", password);
}
}




UITextView

/取消导航控制器对布局的影响

//self.automaticallyAdjustsScrollViewInsets = NO;

//self.navigationController.navigationBar.translucent = NO;

//等价于上面两句,iOS7.0之后有效

self.edgesForExtendedLayout = UIRectEdgeNone;

//设置能否滚动,默认为YES

//tv.scrollEnabled = NO;

//设置能否编辑

//tv.editable = NO;

//设置代理

tv.delegate = self;

#pragma mark - 代理方法
/只要修改就会调用
- (void)textViewDidChange:(UITextView *)textView
{
NSLog(@"正在编辑");
}

//只要修改或选中就会调用
- (void)textViewDidChangeSelection:(UITextView *)textView
{
NSLog(@"正在编辑或选中");
}

//输入内容就会调用
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
NSLog(@"%@", text);
return YES;
}


UIAlertController

UIActionSheet

//常用控件
//UIAlertView 警告视图 (iOS 8.0以前)
//UIActionSheet        (iOS 8.0以前)

//UIAlertController    (iOS 8.0以后)
UIAlertController *ac = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleActionSheet];

//添加第一个Action,从图片库选择照片
[ac addAction:[UIAlertAction actionWithTitle:@"从相册选择" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
[self loadImagePicker:UIImagePickerControllerSourceTypePhotoLibrary];
}]];

//添加第二个Action,拍照
[ac addAction:[UIAlertAction actionWithTitle:@"照相机" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
[self loadImagePicker:UIImagePickerControllerSourceTypeCamera];
}]];

//添加第三个Action,取消
[ac addAction:[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {

}]];


AlertView

- (void)onAdd
{
//创建警告框
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"请创建录音名称" message:nil preferredStyle:UIAlertControllerStyleAlert];

//添加文本框
[alert addTextFieldWithConfigurationHandler:^(UITextField *textField) {
//注册通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onTextFiledDidChange) name:UITextFieldTextDidChangeNotification object:textField];
}];

//添加确定 Action
UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {

//从通知中心移除观察者
[[NSNotificationCenter defaultCenter] removeObserver:self name:UITextFieldTextDidChangeNotification object:nil];
......
}];
//设置禁用状态
okAction.enabled = NO;
[alert addAction:okAction];

//添加取消 Action
[alert addAction:[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {

}]];

//显示alert
[self presentViewController:alert animated:YES completion:nil];
}


//编辑

#pragma - textField
- (void)onTextFiledDidChange
{
//首先,取alert controller
//取得确认的action

UIAlertController *ac = (id)self.presentedViewController;
UIAlertAction *action = ac.actions.firstObject;
action.enabled = YES;

//取出alert中的文本框
self.textField = ac.textFields.firstObject;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: