iOS UI控件总结(全)

时间:2023-03-08 21:04:12

1.UIButton

UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btn.frame = CGRectMake(, , , );
[btn setBackgroundColor:[UIColor blackColor]];
btn.titleLabel.font = [UIFont systemFontOfSize: 14.0];
[btn setTitleColor:[UIColor whiteColor]forState:UIControlStateNormal];
btn.layer.cornerRadius = 5.0;
[btn setTitle:@"黑色" forState:UIControlStateNormal];
[btn setTitle:@"是否确认" forState:UIControlStateHighlighted];
[btn addTarget:self action:@selector(zoomInAction:) forControlEvents:UIControlEventTouchUpInside];//添加事件
[_helpScrView addSubview:btn];

iOS UI控件总结(全)

2.UILabel

//UILabel  文本显示
_label1 = [[UILabel alloc]initWithFrame:CGRectMake(, , , )];
//_label1.frame = CGRectMake(60, 75, 100, 25);
_label1.backgroundColor = [UIColor grayColor];
_label1.text = @"文字显示!";
_label1.font = [UIFont fontWithName:@"Arial" size:];
_label1.textColor = [UIColor blackColor];
_label1.numberOfLines = ;//文本最多行数,为0时没有最大行数限制
_label1.textAlignment = NSTextAlignmentCenter;//文字居中
[_helpScrView addSubview:_label1];

iOS UI控件总结(全)

3.UISwtich(滑块控件)

UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(, , , )];
[_helpScrView addSubview:slider];
[slider setMaximumValue:];//设置最大值10
[slider setMinimumValue:];//设置最小值0
slider.value = ;//当前位置是4
slider.minimumTrackTintColor = [UIColor orangeColor];//设置移动前线条的颜色
slider.maximumTrackTintColor = [UIColor blackColor];//设置移动后线条的颜色
slider.minimumValueImage = [UIImage imageNamed:@"love_1.png"];//设置滚动条最左边的图片
slider.maximumValueImage = [UIImage imageNamed:@"love_2.png"];//设置滚动条最右边的图片
//slider.thumbTintColor = [UIColor grayColor];//设置中间按钮移动按钮的颜色
//将按钮换成图片,正常状态下
[slider setThumbImage:[UIImage imageNamed:@"love_3.png"] forState:UIControlStateNormal];
[slider addTarget:self action:@selector(function:)
forControlEvents:UIControlEventValueChanged]; -(void)function:(UISlider*)sender {
long values = lroundf(sender.value);
_label1.text = [NSString stringWithFormat:@"%ld",values]; //这样的效果
}

iOS UI控件总结(全)

4.UISlider(开关控件)

//开关控件(UISwitch)
UISwitch *switchView = [[UISwitch alloc] initWithFrame:CGRectMake(, , , )];
[_helpScrView addSubview:switchView];
BOOL setting = switchView.isOn;//获得开关状态
[switchView setOn:setting animated:YES];//设置开关状态
//将上面的绿色替换成橘黄色
switchView.onTintColor = [UIColor orangeColor];
//设置按钮的颜色
switchView.thumbTintColor = [UIColor redColor];
//开关控件外部的颜色
switchView.tintColor = [UIColor purpleColor];
[switchView addTarget:self action:@selector(switchTag:)
forControlEvents:UIControlEventValueChanged]; - (void)switchTag:(UISwitch *)switchTag {
BOOL setting = switchTag.isOn;
[switchTag setOn:setting animated:YES];
if (setting)
{
NSLog(@"on");
}else
{
NSLog(@"off");
}
}

iOS UI控件总结(全)

5.UITextField(输入框)

UITextField *accountField = [[UITextField alloc]initWithFrame:CGRectMake(, , , )];
[accountField setBorderStyle:UITextBorderStyleRoundedRect]; //外框类型
[accountField setFont:[UIFont systemFontOfSize:16.0]];
[accountField setTextColor:[UIColor grayColor]];
accountField.placeholder = @"用户名"; //默认显示的字
accountField.secureTextEntry = NO; //是否以密码形式显示
accountField.returnKeyType = UIReturnKeyDone; //return键变成什么键
accountField.clearButtonMode = UITextFieldViewModeWhileEditing; //编辑时会出现个修改X
accountField.keyboardType = UIKeyboardTypeDefault;//键盘显示类型 accountField.delegate = self;
//[accountField becomeFirstResponder];//设置键盘第一响应者
[_view1_top addSubview:accountField];   
//收回键盘
UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(keyboardHide:)];
//设置成NO表示当前控件响应后会传播到其他控件上,默认为YES。
tapGestureRecognizer.cancelsTouchesInView = NO;
//将触摸事件添加到当前view
[self.helpScrView addGestureRecognizer:tapGestureRecognizer];
//按下Done按钮的调用方法,我们让键盘消失
-(BOOL)textFieldShouldReturn:(UITextField *)textField{ [textField resignFirstResponder]; return YES;
} //收回键盘
-(void)keyboardHide:(UITapGestureRecognizer*)tap{
[_FieldPass resignFirstResponder];
[_textView resignFirstResponder];
}

iOS UI控件总结(全)

6.UITextView(文本框)

//UITextView  文本框,不可输入,根据内容改变框大小
_textView = [[UITextView alloc]initWithFrame:CGRectMake(, , UIScreenWidth-, )];
_textView.editable = NO;//设置是否可以编辑
_textView.delegate = self;
_textView.textColor = [UIColor colorWithRed:/255.0 green:/255.0 blue:/255.0 alpha:];
_textView.font = [UIFont boldSystemFontOfSize:];
_textView.scrollEnabled = NO;//设置是否可以滚动
_textView.layer.borderColor = [[UIColor brownColor]CGColor];
_textView.layer.borderWidth = 1.0;
_textView.layer.backgroundColor = [[UIColor clearColor] CGColor];
_textView.layer.cornerRadius = 6.0; _textView.autoresizingMask = UIViewAutoresizingFlexibleHeight;//相对于父视图不会改变属性
[_textView setSelectable:YES]; _textView.text = @"我多么希望喝酒的时候旁边有个人深情地看着我温柔的说,少喝点,伤身体,妈逼现实中却总是有个煞笔在旁边吼:你麻痹,养鱼啊!喝起!"; [_view1_top2 addSubview:_textView];
[self textViewDidChange:_textView]; //UITextView 文本框,不可输入
_textView2 = [[UITextView alloc]initWithFrame:CGRectMake(, , UIScreenWidth-, )];
_textView2.editable = NO;//设置是否可以编辑
_textView2.delegate = self;
_textView2.textColor = [UIColor colorWithRed:/255.0 green:/255.0 blue:/255.0 alpha:];
_textView2.font = [UIFont boldSystemFontOfSize:];
_textView2.scrollEnabled = NO;//设置是否可以滚动
_textView2.layer.borderColor = [[UIColor orangeColor]CGColor];
_textView2.layer.borderWidth = 1.0;
_textView2.layer.backgroundColor = [[UIColor clearColor] CGColor];
_textView2.layer.cornerRadius = 6.0;
_textView2.text = @"UITextView是继承于UIScrollView,并且遵循UITextInput的协议;而UIScrollView是继承于UIView,并且遵循NSCoding协议;上面有些属性跟UITextField是一样的,就没有标注出来;关于UITextInput的协议也可以见关于UITextField里面的内容;包含一些键盘响应及相应的通知处理知识点;from:http://www.cnblogs.com/wujy/p/5807646.html";
//可以检测检测电话、网址和邮箱。符合条件的文本中的内容就会高亮;
_textView2.dataDetectorTypes = UIDataDetectorTypeAll; [_view1_top2 addSubview:_textView2]; //如何优雅的让UITextView根据输入文字实时改变高度
//UITextView 文本框,不可输入
_textView3 = [[UITextView alloc]initWithFrame:CGRectMake(, , UIScreenWidth-, )];
_textView3.editable = YES;//设置是否可以编辑
_textView3.delegate = self;
_textView3.textColor = [UIColor colorWithRed:/255.0 green:/255.0 blue:/255.0 alpha:];
_textView3.font = [UIFont boldSystemFontOfSize:];
_textView3.scrollEnabled = NO;//设置是否可以滚动
_textView3.layer.borderColor = [[UIColor orangeColor]CGColor];
_textView3.layer.backgroundColor = [[UIColor clearColor] CGColor];
_textView3.layer.borderWidth = 1.0;
_textView3.layer.cornerRadius = 6.0;
_textView3.layer.masksToBounds = YES;
_textView3.textContainerInset = UIEdgeInsetsMake(,, , );//调整光标的位置,让光标出现在UITextView的正中间 [_view1_top2 addSubview:_textView3]; //uitextview 内置函数,代理方法
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{ //UITextView: 响应键盘的 return 事件
if ([text isEqualToString:@"\n"]){ //判断输入的字是否是回车,即按下return
//在这里做你响应return键的代码
[textView resignFirstResponder];
return NO; //这里返回NO,就代表return键值失效,即页面上按下return,不会出现换行,如果为yes,则输入页面会换行
} //每次输入文字后调用该方法,此时输入的文字并不在textView.text中,而在另一个参数text中,走完该方法后每次输入的文字才加入到textView.text中。解决方案是将textView.text和text文字拼接起来
CGRect frame = textView.frame;
float height;
if ([text isEqual:@""]) { if (![textView.text isEqualToString:@""]) { height = [ self heightForTextView:textView WithText:[textView.text substringToIndex:[textView.text length] - ]]; }else{ height = [ self heightForTextView:textView WithText:textView.text];
}
}else{ height = [self heightForTextView:textView WithText:[NSString stringWithFormat:@"%@%@",textView.text,text]];
} frame.size.height = height;
[UIView animateWithDuration:0.5 animations:^{ textView.frame = frame; } completion:nil]; return YES; } //计算输入文字高度的方法
- (float) heightForTextView: (UITextView *)textView WithText: (NSString *) strText{
CGSize constraint = CGSizeMake(textView.contentSize.width , CGFLOAT_MAX);
CGRect size = [strText boundingRectWithSize:constraint
options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading)
attributes:@{NSFontAttributeName: [UIFont systemFontOfSize:]}
context:nil];
float textHeight = size.size.height + 20.0;
return textHeight;
} //不可编辑的UITextView 自动调整高度
- (void)textViewDidChange:(UITextView *)textView{
CGRect frame = textView.frame;
CGSize size = [textView.text sizeWithFont:textView.font
constrainedToSize:CGSizeMake(, )
lineBreakMode:UILineBreakModeTailTruncation];
frame.size.height = size.height > ? size.height + : ;
textView.frame = frame; }

iOS UI控件总结(全)

8.UISegmentedControl 选项卡控件

NSArray *arr = [NSArray arrayWithObjects:@"辰东", @"猫腻", @"天蚕土豆", @"开荒", nil];
UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:arr];
segmentedControl.frame = CGRectMake(, , , );
[_helpScrView addSubview:segmentedControl];
segmentedControl.tintColor = [UIColor orangeColor];//控件渲染色(也就是外观字体颜色)
//设置字体样式
[segmentedControl setTitleTextAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:],NSForegroundColorAttributeName:[UIColor blackColor]} forState:UIControlStateNormal];
//添加一个分段(在指定下标下插入,并设置动画效果)
[segmentedControl insertSegmentWithTitle:@"五金电料" atIndex: animated:NO];
//根据内容定分段宽度
segmentedControl.apportionsSegmentWidthsByContent = YES;
//开始时默认选中下标(第一个下标默认是0)
segmentedControl.selectedSegmentIndex = ;
//按下是否会自动释放:
//segmentedControl.momentary = YES;
//添加事件
[segmentedControl addTarget:self action:@selector(change:) forControlEvents:UIControlEventValueChanged];
//添加到导航栏上面
//self.navigationItem.titleView = segmentedControl; //点击不同分段就会有不同的事件进行相应
-(void)change:(UISegmentedControl *)sender{ if (sender.selectedSegmentIndex == ) {
NSLog(@"辰东");
}else if (sender.selectedSegmentIndex == ){
NSLog(@"猫腻");
}else if (sender.selectedSegmentIndex == ){
NSLog(@"五金电料");
}else if (sender.selectedSegmentIndex == ){
NSLog(@"天蚕土豆");
}else{
NSLog(@"开荒");
}
}

iOS UI控件总结(全)

9.UIPageControl 分页,与UIScrollerView联合使用

_pageCtrl = [[UIPageControl alloc]initWithFrame:CGRectMake(, UIScreenHeight-, UIScreenWidth-, )];
_pageCtrl.numberOfPages = ;//设置控制器页数
_pageCtrl.currentPage = ;//设置当前所在页码
_pageCtrl.pageIndicatorTintColor = [UIColor redColor];//设置控制器页码点得颜色
_pageCtrl.currentPageIndicatorTintColor = [UIColor blackColor];//设置控制器当前所在页码点的颜色
[_pageCtrl addTarget:self action:@selector(pageTurn:) forControlEvents:UIControlEventValueChanged]; [self.view addSubview:_pageCtrl]; //先加载uiscrollView
_helpScrView = [[UIScrollView alloc] initWithFrame:CGRectMake(, , bounds.size.width, UIScreenHeight)];
[_helpScrView setContentSize:CGSizeMake(UIScreenWidth*, UIScreenHeight-)];//设置页数
_helpScrView.pagingEnabled = YES; //设为YES时,会按页滑动
_helpScrView.contentOffset = CGPointMake(, );
_helpScrView.bounces = YES;//弹性,默认为yes
[_helpScrView setDelegate:self];//协议
_helpScrView.showsHorizontalScrollIndicator = NO;//取消UIScrollView自己的进度条。 [self.view addSubview:_helpScrView]; //将UIScrollView添加到主界面上 //其次是UIScrollViewDelegate的scrollViewDidEndDecelerating函数,用户滑动页面停下后调用该函数。
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
//更新UIPageControl的当前页
CGPoint offset = scrollView.contentOffset;
CGRect bounds = scrollView.frame;
[_pageCtrl setCurrentPage:offset.x / bounds.size.width];
long numbers = lroundf(offset.x / bounds.size.width); NSLog(@"%ld",numbers);//显示页数 NSInteger juli = scrollView.contentSize.width-UIScreenWidth-;
NSLog(@"juli->>>>%ld",(long)juli);
NSLog(@"scrollView.contentOffset.x->>>>%ld",(long)scrollView.contentOffset.x); // if (scrollView.contentOffset.x >juli) {
//
// NSLog(@"跳转!!");
//
// Table_ViewController *secondview=[[Table_ViewController alloc]init];
//
// [self.navigationController pushViewController:secondview animated:YES];
// } } //然后是点击UIPageControl时的响应函数pageTurn
- (void)pageTurn:(UIPageControl*)sender
{
//令UIScrollView做出相应的滑动显示
CGSize viewSize = _helpScrView.frame.size;
CGRect rect = CGRectMake(sender.currentPage * viewSize.width, , viewSize.width, viewSize.height);
[_helpScrView scrollRectToVisible:rect animated:YES]; long numbers = lroundf(sender.currentPage); NSLog(@"%ld",numbers);//显示页数
}

iOS UI控件总结(全)     iOS UI控件总结(全)

10.UITableView

这个控件使用我只介绍一些关键的地方:

#pragma mark - 创建一个tableView
-(void)createTableView{ _tableView = [[UITableView alloc]initWithFrame:CGRectMake(,, SCREEN_WITH , SCREEN_HEIGHT - -) style:UITableViewStylePlain];
_tableView.delegate = self;
_tableView.dataSource = self;
[self.view addSubview:_tableView];
} #pragma mark - tableView代理方法
//分组头部标题的高度
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
return ;
} //分组头部区域插入View
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
UIView *view = [[UIView alloc]initWithFrame:CGRectMake(, , , )];
view.backgroundColor = [UIColor colorWithRed:/255.0 green:/255.0 blue:/255.0 alpha:]; UILabel *timeLabel = [[UILabel alloc]initWithFrame:CGRectMake(, , , )];
gameTimeModel *model = [[gameTimeModel alloc]init];
model = _dataSourceArray[section];
NSString *dataStr = model.date_block;
timeLabel.text = dataStr;
timeLabel.textColor = [UIColor whiteColor];
timeLabel.font = [UIFont systemFontOfSize:];
[view addSubview:timeLabel]; return view;
} //分组
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ return ;//分成三组
} //每组的cell数目
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ return ;//每组12行 } //cell高度
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return ;
} //这个就不用多说了,cell样式
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
return nil ;
}

注:此博客仅供博主学习总结用,一部分来自百度,如有侵权请联系我删除.