iOS UI控件总结(全)
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];
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];
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]; //这样的效果
}
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");
}
}
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];
}
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; }
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(@"开荒");
}
}
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);//显示页数
}
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 ;
}
注:此博客仅供博主学习总结用,一部分来自百度,如有侵权请联系我删除.
iOS UI控件总结(全)的更多相关文章
- iOS UI控件继承关系图
闲来无事,把UI控件的继承关系图整理下来,供自己和大家使用.
- ios UI控件的简单整理
把该文件拷贝到.m文件中就能够方便的查找 /** 匿名类目:能够声明方法和变量,属性为private(不同意在外部调用,且不能被继承 */ /** 发送数据的托付方,接收数据的时代理发(即代理的反向传 ...
- iOS UI控件
创建: 2018/04/21 完成: 2018/04/25 更新: 2018/09/24 补充UIActivityIndicatorView的显示和隐藏方法 UIButton 设定项目 项目名 ...
- iOS UI控件之间的关系图
- IOS学习资源收集--开发UI控件相关
收集的一些本人了解过的iOS开发UI控件相关的代码资源(本文持续补充更新) 内容大纲: 1.本人在github上也上传了我分装好的一些可重复利用的UI控件 2.计时相关的自定义UILabel控件 正文 ...
- iOS 使用UI控件的外观协议UIAppearance进行设置默认UI控件样式
在iOS开发中,经常会对UINavigationBar的样式进行全局样式.采用的设置方式有两种: 第一种,采用方式如下: [UINavigationBar appearance] 这种是对一类对象的默 ...
- 79.iOS 设备的UI规范和iOS各控件默认高度
iOS设备的UI 规范 iPhone界面尺寸 iPhone图标尺寸 iPad的设计尺寸 iPad图标尺寸 iPhone设备尺寸分辨率比例 iPhone各设备 launch image iOS 各种控件 ...
- iOS基础UI控件介绍-Swift版
iOS基础UI控件总结 iOS基础控件包括以下几类: 1.继承自NSObject:(暂列为控件) UIColor //颜色 UIImage //图像 2.继承自UIView: 只能相应手势UIGest ...
- iOS 中UI控件的各种对齐方式总结
1.textAligment : 文字的水平方向的对齐方式 取值 NSTextAlignmentLeft = 0, // 左对齐 NSTextAlignmentCenter = ...
随机推荐
- page cache 与free
我们经常用free查看服务器的内存使用情况,而free中的输出却有些让人困惑,如下: 先看看各个数字的意义以及如何计算得到: free命令输出的第二行(Mem):这行分别显示了物理内存的总量(tota ...
- linux - tar命令简单使用
tar 新建一个tar文档 touch file1 touch file2 mkdir dir1 touch dir1/file3 # 普通tar文档 tar -cf tar-file.tar fil ...
- js精要之模块模式
// 模块模式是一种用于创建拥有私有数据的单件对象的模式,基本做法是使用立调函数(IIFE)来返回一个对象 var yourObjet = (function(){ // 私有数据 return { ...
- 学习计划——巩固基础+进阶练习
时间:2016/3/23---24 内容:如何用CSS进行网页布局 课程复习 目标:完成一个demo+完成一篇学习心得博客 时间:2016/3/25---26 内容:网页布局基础 课程复习 目标: ...
- css3 3D效果
css3 3D变形 transfrom初学 这个礼拜学了css3 3d,感觉到css无穷的魅力,可以通过几个特定的代码符号创建出3D效果的页面. ___ 透视 一个元素需要一个透视点才能激活3D空间, ...
- UI进阶 即时通讯之XMPP好友列表、添加好友、获取会话内容、简单聊天
这篇博客的代码是直接在上篇博客的基础上增加的,先给出部分代码,最后会给出能实现简单功能的完整代码. UI进阶 即时通讯之XMPP登录.注册 1.好友列表 初始化好友花名册 #pragma mark - ...
- 【死磕Java并发】-----Java内存模型之happend-before
在上篇博客([死磕Java并发]-–深入分析volatile的实现原理)LZ提到过由于存在线程本地内存和主内存的原因,再加上重排序,会导致多线程环境下存在可见性的问题.那么我们正确使用同步.锁的情况下 ...
- redis安装-单机版
环境准备 因为redis使用c语言开发的,如果要运行在linux上,需要gcc-c++的环境.那么我们就要先看一下是否安装了gcc-c++如果没有的话,需要在虚拟机上安装gcc-c++环境(友情提示, ...
- .NET十五周年生日快乐 (3月7日发布Visual Studio 2017正式版?)
今天 是.NET 对世界首次亮相15 周年.2002 年 2 月 13 日,第一版本的.NET 发布作为 Visual Studio.NET 的一部分.它仿佛就在昨天为微软建设成"下一代 W ...
- .NET 十五岁,谈谈我眼中的.NET
2002年2月13日,第一个版本随着visual studio.net的发布,今天已经走过15年, .net团队写了一篇文章,里面有一个视频,Anders Hejlsberg已是白发苍苍的老人,我也从 ...