ios 简单基础控件创建汇总:UIBUTTON UILabel UITextField UILabel UIscroll
来源:互联网 发布:java 正则表达式 筛选 编辑:程序博客网 时间:2024/05/21 14:09
转载自:http://www.cnblogs.com/maxfong/articles/2216180.html http://www.cnblogs.com/wengzilin/archive/2012/03/13/2393985.html http://www.2cto.com/kf/201111/112631.html http://blog.csdn.net/amdbenq/article/details/7866166
UIBUTTON
UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];//初始化button,选择button类型btn.frame = CGRectMake(30, 360, 90, 35);//大小和位置[btn setTitle:@"ZoomIn" forState:UIControlStateNormal];//正常状况下button显示的标题[btn setTitle:@"ZoomIn" forState:UIControlStateHighlighted];//高亮显示时button的标题[btn addTarget:self action:@selector(zoomInAction:) forControlEvents:UIControlEventTouchUpInside];//button被按下又抬起后发生的事件//@selector可以理解为"选择子",selector是一个指针变量,类似于sender。 这里是将method的方法指定给新建的这个btn。/*在 method 方法里可以将 sender 看作是 btn 了 比如设置btn的hidden属性等等 btn.hidden = YES; 这样btn被隐藏了/*// 通过背景图片设置按钮高亮IImage *normalImage = [UIImage imageNamed:@"NormalBlueButton.png"]; UIImage *highlightedImage = [UIImage imageNamed:@"HighlightedBlueButton"]; self.myButton = [UIButton buttonWithType:UIButtonTypeCustom]; self.myButton.frame = CGRectMake(110.0f,200.0f,100.0f, 37.0f); [self.myButton setBackgroundImage:normalImage forState:UIControlStateNormal]; [self.myButton setBackgroundImage:highlightedImage forState:UIControlStateHighlighted]; [self.myButton setTitle:@"Normal" forState:UIControlStateNormal]; [self.myButton setTitle:@"Pressed" forState:UIControlStateHighlighted];//这里创建一个圆角矩形的按钮02 UIButton *button1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];03 04 // 能够定义的button类型有以下6种,05 // typedef enum {06 // UIButtonTypeCustom = 0, 自定义风格07 // UIButtonTypeRoundedRect, 圆角矩形08 // UIButtonTypeDetailDisclosure, 蓝色小箭头按钮,主要做详细说明用09 // UIButtonTypeInfoLight, 亮色感叹号10 // UIButtonTypeInfoDark, 暗色感叹号11 // UIButtonTypeContactAdd, 十字加号按钮12 // } UIButtonType;13 14 //给定button在view上的位置15 button1.frame = CGRectMake(20, 20, 280, 20);16 17 //button背景色18 button1.backgroundColor = [UIColor clearColor];19 20 //设置button填充图片21 //[button1 setImage:[UIImage imageNamed:@"btng.png"] forState:UIControlStateNormal];22 23 //设置button标题24 [button1 setTitle:@"点击" forState:UIControlStateNormal];25 26 /* forState: 这个参数的作用是定义按钮的文字或图片在何种状态下才会显现*/27 //以下是几种状态28 // enum {29 // UIControlStateNormal = 0, 常规状态显现 30 // UIControlStateHighlighted = 1 << 0, 高亮状态显现 31 // UIControlStateDisabled = 1 << 1, 禁用的状态才会显现32 // UIControlStateSelected = 1 << 2, 选中状态 33 // UIControlStateApplication = 0x00FF0000, 当应用程序标志时 34 // UIControlStateReserved = 0xFF000000 为内部框架预留,可以不管他 35 // };36 37 /*38 * 默认情况下,当按钮高亮的情况下,图像的颜色会被画深一点,如果这下面的这个属性设置为no,39 * 那么可以去掉这个功能40 */41 button1.adjustsImageWhenHighlighted = NO;42 /*跟上面的情况一样,默认情况下,当按钮禁用的时候,图像会被画得深一点,设置NO可以取消设置*/43 button1.adjustsImageWhenDisabled = NO;44 /* 下面的这个属性设置为yes的状态下,按钮按下会发光*/45 button1.showsTouchWhenHighlighted = YES;46 47 /* 给button添加事件,事件有很多种,我会单独开一篇博文介绍它们,下面这个时间的意思是48 按下按钮,并且手指离开屏幕的时候触发这个事件,跟web中的click事件一样。49 触发了这个事件以后,执行butClick:这个方法,addTarget:self 的意思是说,这个方法在本类中50 也可以传入其他类的指针*/51 [button1 addTarget:self action:@selector(butClick:) forControlEvents:UIControlEventTouchUpInside];52 53 54 //显示控件55 [self.view addSubview:button1];
UILabel *label1 = [[UILabel alloc]initWithFrame:CGRectMake(50.0, 20.0, 200.0, 50.0)]; //设置显示文字 label1.text = @"label1"; //设置字体:粗体,正常的是 SystemFontOfSize label1.font = [UIFont boldSystemFontOfSize:20]; //设置文字颜色 label1.textColor = [UIColor orangeColor]; //设置文字位置 label1.textAlignment = UITextAlignmentRight// UITextAlignmentCenter//UITextAlignmentLeft; //设置字体大小适应label宽度 label1.adjustsFontSizeToFitWidth = YES; //设置label的行数 label1.numberOfLines = 2; label1.backgroudColor=[UIColor clearColor]; //可以去掉背景色 //设置高亮 label1.highlighted = YES; label1.highlightedTextColor = [UIColor orangeColor]; //设置阴影 label1.shadowColor = [UIColor redColor]; label1.shadowOffset = CGSizeMake(1.0,1.0); //设置是否能与用户进行交互 label1.userInteractionEnabled = YES; //设置label中的文字是否可变,默认值是YES label1.enabled = NO; //设置文字过长时的显示格式 label1.lineBreakMode = UILineBreakModeMiddleTruncation;//截去中间 // typedef enum { // UILineBreakModeWordWrap = 0, // UILineBreakModeCharacterWrap, // UILineBreakModeClip,//截去多余部分 // UILineBreakModeHeadTruncation,//截去头部 // UILineBreakModeTailTruncation,//截去尾部 // UILineBreakModeMiddleTruncation,//截去中间 // } UILineBreakMode; //如果adjustsFontSizeToFitWidth属性设置为YES,这个属性就来控制文本基线的行为 label1.baselineAdjustment = UIBaselineAdjustmentNone; // typedef enum { // UIBaselineAdjustmentAlignBaselines, // UIBaselineAdjustmentAlignCenters, // UIBaselineAdjustmentNone, // } UIBaselineAdjustment; <pre name="code" class="objc">[label1 sizetofit];///label1文本自适应顶置
[self.view addSubview:label1]; [label1 release];
UITextField的初始化和设置 textField = [[UITextField alloc] initWithFrame:CGRectMake(120.0f, 80.0f, 150.0f, 30.0f)]; [textField setBorderStyle:UITextBorderStyleRoundedRect]; //外框类型 textField.placeholder = @"password"; //默认显示的字 textField.secureTextEntry = YES; //密码 textField.autocorrectionType = UITextAutocorrectionTypeNo; textField.autocapitalizationType = UITextAutocapitalizationTypeNone; textField.returnKeyType = UIReturnKeyDone; textField.clearButtonMode = UITextFieldViewModeWhileEditing; //编辑时会出现个修改X textField.delegate = self;2.要实现的Delegate方法,关闭键盘 - (BOOL)textFieldShouldReturn:(UITextField *)textField { [self.textField resignFirstResponder]; return YES; } 3. 可以在UITextField使用下面方法,按return键返回-(IBAction) textFieldDone:(id) sender{ [textFieldName resignFirstResponder]; }链接TextField控件的"Did end on exit"最右侧加图片是以下代码, UIImageView *imgv=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"right.png"]]; text.rightView=imgv; text.rightViewMode = UITextFieldViewModeAlways; 如果是在最左侧加图片就换成:text.leftView=imgv;text.leftViewMode = UITextFieldViewModeAlways; UITextField 继承自 UIControl,此类中有一个属性contentVerticalAlignment所以想让UITextField里面的text垂直居中可以这样写:text.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;查看函数的方法:按住command键双击进入函数声明按住alt键双击进入doc文档///////////////////////////////////////////////////////////////文本框常用方法:如何用程序删除文本框中选中的文本[textView delete: nil];///////////////////////////////////////////////////////////////如何限制文本框只能输入数字:建立NSNumberFormatter的子类,增加这个方法,将formatter链接至文本框。 - (BOOL) isPartialStringValid: (NSString **) partialStringPtr proposedSelectedRange: (NSRangePointer) proposedSelRangePtr originalString: (NSString *) origString originalSelectedRange: (NSRange) origSelRange errorDescription: (NSString **) error{ NSCharacterSet *nonDigits; NSRange newStuff; NSString *newStuffString; nonDigits = [[NSCharacterSet decimalDigitCharacterSet] invertedSet]; newStuff = NSMakeRange(origSelRange.location, proposedSelRangePtr->location - origSelRange.location); newStuffString = [*partialStringPtr substringWithRange: newStuff]; if ([newStuffString rangeOfCharacterFromSet: nonDigits options: NSLiteralSearch].location != NSNotFound) { *error = @"不是数字"; return (NO); } else { *error = nil; return (YES); } }///////////////////////////////////////////////////////////////从文本框获取十六进制数据的代码char singleNumberString[3] = {'\0','\0','\0'};uint32_t singleNumber = 0;uint32_t i = 0; NSMutableData *data = [NSMutableData data]; //从文本框获取到得数据 const char *buf = [[_hexToSendTextField text] UTF8String]; //转换为十六进制 for(i = 0; i < strlen(buf); i+=2) { if(((i+1) < len && isxdigit(buf) && (isxdigit(buf[i+1]))) { singleNumberString[0] = buf; singleNumberString[1] = buf[i+1]; sscanf(singleNumberString, "%x", &singleNumber); [data appendBytes:(void*)(&tmp) length:1]; } else { break; } } //输出 NSLog(@"%@", data);/////////////////////////////////////////////////////////////点击 UITextView 输入文字,光标都从最初点开始- (void)textViewDidChangeSelection:(UITextView *)textView{ NSRange range; range.location = 0; range.length = 0; textView.selectedRange = range;}///////////////////////////////////////////////////////////软键盘在登录页面要实现用户名和密码,密码要是点点格式,引入当前页面光标要停留在用户名选项,软键盘要弹出界面。如下图:弹出键盘:[username becomeFirstResponder];取消键盘:[username resignFirstResponder];密码保护:password.secureTextEntry=YES;//////////////////////////////////////////////////////////////////1.UITextField的初始化和设置 textField = [[UITextField alloc] initWithFrame:CGRectMake(120.0f, 80.0f, 150.0f, 30.0f)]; [textField setBorderStyle:UITextBorderStyleRoundedRect]; //外框类型 textField.placeholder = @"password"; //默认显示的字 textField.secureTextEntry = YES; //密码 textField.autocorrectionType = UITextAutocorrectionTypeNo; textField.autocapitalizationType = UITextAutocapitalizationTypeNone; textField.returnKeyType = UIReturnKeyDone; textField.clearButtonMode = UITextFieldViewModeWhileEditing; //编辑时会出现个修改X textField.delegate = self;2.要实现的Delegate方法,关闭键盘 - (BOOL)textFieldShouldReturn:(UITextField *)textField { [self.textField resignFirstResponder]; return YES; } 3. 可以在UITextField使用下面方法,按return键返回-(IBAction) textFieldDone:(id) sender{ [textFieldName resignFirstResponder]; }链接TextField控件的"Did end on exit"////////////////////////////////////////////////////////////////////限制输入文本的长度- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ if (range.location >= MAX_LENGTH) return NO; // return NO to not change text return YES;}if (textField.text.length >= 10 && range.length == 0) return NO;return YES;- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { if ([textField.text length] > MAXLENGTH) { textField.text = [textField.text substringToIndex:MAXLENGTH-1]; return NO; } return YES; } //////////////////////////////////////////////////////////////////////使用UITextFieldDelegate来隐藏键盘 在iPhone界面上,时常会需要当用户输入完内容后,隐藏键盘。 当然有很多方法,今天只介绍使用UITextFieldDelegate这个协议实现隐藏键盘。其实很简单, 需要三步:1. 在你的控制器类中,加入UITextFieldDelegate这个协议如:@interface AddItemViewController : UIViewController <UITextFieldDelegate>2. 在使用了UITextFieldDelegate协议的控制器类的实现中,加入- (BOOL)textFieldShouldReturn:方法。- (BOOL)textFieldShouldReturn:(UITextField *)textField { [textField resignFirstResponder]; return YES;} //设置焦点:[UITextField becomeFirstResponder];3. 将xib文件中的TextField控件的delegate变量指向到之前使用UITextFieldDelegate协议的那个控制器类,将 TextField的delegate IBOutlet变量右键链接到前面的控制器类的实例上。或者使用代码方式,指定相关TextField的delegate变量。- (void)viewDidLoad { [super viewDidLoad]; itemNameField.delegate = self; priceField.delegate = self;}复制代码
UISCroll
(1)初始化一般的组件初始化都可以alloc和init来初始化,上一段代码初始化。view plainUIScrollView *sv =[[UIScrollView alloc] initWithFrame:CGRectMake(0.0, 0.0,self.view.frame.size.width, 400)]; 一般的初始化也都有很多方法,都可以确定组件的Frame,或者一些属性,比如UIButton的初始化可以确定Button的类型。当然,我比较提倡大家用代码来写,这样比较了解整个代码执行的流程,而不是利用IB来弄布局,确实很多人都用IB来布局会省很多时间,但这个因人而异,我比较提倡纯代码写。 (2)滚动属性UIScrollView的最大属性就是可以滚动,那种效果很好看,其实滚动的效果主要的原理是修改他的坐标,准确的讲是修改原点坐标,而UIScrollView跟其他组件的都一样,有自己的delegate,在.h文件中要继承UIScrollView的delegate然后在.m文件的viewDidLoad设置的delegate为self。如下: view plainsv.pagingEnabled = YES; sv.backgroundColor = [UIColor blueColor]; sv.showsVerticalScrollIndicator = NO; sv.showsHorizontalScrollIndicator = NO; sv.delegate = self; CGSize newSize = CGSizeMake(self.view.frame.size.width * 2, self.view.frame.size.height); [sv setContentSize:newSize]; [self.view addSubview: sv]; 在上面的代码中,一定要设置UIScrollView的pagingEnable为YES。不然你就是设置好了其他属性,它还是无法拖动,接下去的分别是设置背景颜色和是否显示水平和竖直拖动条,最后最重要的设置他的ContentSize,ContentSize的意思就是它所有内容的大小,这个和它的Frame是不一样的,只有ContentSize的大小大于Frame这样才可以支持拖动。 (3)结合UIPageControl做新闻翻页效果初始化UIPageControl的方法都很简单,就是上面讲的alloc和init,不过大家要记住的一点就是如果你定义了全局变量一定要在delloc那里释放掉。 UIPageControl有一个userInteractionEnabled你可以设置它为NO。就是点击的时候它不调用任何方法。然后设置它的currentPage 为0,并把它加到view上去。 接下来在UIScrollView的delegate方法:view plain- (void)scrollViewDidScroll:(UIScrollView *)scrollView; 在这里你可以写上关于UIPageControl的页面设置的算法。如下 view plainint index = fabs(scrollView.contentOffset.x) /scrollView.frame.size.width; pageControl.currentPage = index; (4)其他的UIScrollView还支持处理缩放的动作,比如图片的缩小或者地图。但是必须实现它的委托viewForZoomingInScrollView:scrollViewDidEndZooming:withView:atScale:然后它的两个属性maximumZoomScale和minimumZoomScale 要不一样。这样就能基本实现图片的缩放了。 好了,今天讲UIScrollView和UIPageControl就到这里咯,希望大家都能理解。欢迎拍砖。附加一个photo的利用UIScrollView实现的demo给大家: http://up.2cto.com/2011/1130/20111130025112243.zip 作者Andy---清风
0 0
- ios 简单基础控件创建汇总:UIBUTTON UILabel UITextField UILabel UIscroll
- IOS UI 代码创建UIButton,UITextField,UILabel
- UILabel、UITextField、UIButton、UIImageView控件
- 基础控件之UILabel、UIButton、UITextField、UIAlertView、 UIImageView
- iOS基础——UI控件之UIView、UITextField、UILabel、UIColor、UIButton、UIImageView
- UI基本控件-UILabel-UITextField-UIButton-UIAlertView
- UI-基本控件( UILabel UITextField UIImageView UIButton)
- UI_基础视图(UILabel UITextField UIButton UIAlertView)
- UILabel,UIButton,UITextField的简单使用
- iOS开发-Day26-UILabel&UIButton&UITextField
- iOS——UILabel UIButton UITextField
- UIButton,UIImageView,UILabel,UITextField
- UITextField、UILabel、UIButton
- UILabel, UITextField, UIButton
- UILabel,UITextField,UIButton
- UIView UILabel UITextField UIButton
- UILabel、UITextField、UIButton
- UIButton, UILabel, UITextField
- 根据先中序序列或后中序序列确定二叉树
- 煞笔方干活
- Leetcode: Roman to Integer
- 黑马程序员——Java IO—字节流—PrintStream
- ubuntu16.04下编译安装OpenCV
- ios 简单基础控件创建汇总:UIBUTTON UILabel UITextField UILabel UIscroll
- Learn Beautiful Soup(4)—— 一个简单抓取图书信息的例子
- Android开源框架—android Gson的使用
- 四川大学线下编程比赛第三题:书本转移C程序
- JAVA最基础理解
- Tomcat下载安装及常见问题解决办法
- test
- Lowest Common Multiple Plus
- 图像特征提取:边缘检测