《二iPhone的UI标准和基本UI控件》由会员分享,可在线阅读,更多相关《二iPhone的UI标准和基本UI控件(40页珍藏版)》请在金锄头文库上搜索。
1、NetDragon Websoft Inc. 网龙(中国)iPhone系统标准UI,UI控件使用 NetDragon Websoft Inc. 网龙(中国)通过上节课的介绍,大家对于 iPhone的整个框架和语法有了大 致了解。本节课程将具体介绍 iPhone的UI标准和UIView上的UI 子控件。NetDragon Websoft Inc. 网龙(中国)1.iPhone系统标准UI介绍2.UI规范3.输入控件(UITextField / 返回NO讲禁止编辑 - (void)textFieldDidBeginEditing; / 当键盘得到焦点的时候,调用此方法-(BOOL)textFiel
2、dShouldEndEditing; /如果返回NO将会限制键盘掉下 - (void)textFieldDidEndEditing: / 键盘已经掉下- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string; / 返回no输入字符无效-(BOOL)textFieldShouldClear:(UITextField *)textField; -(BOOL)textFieldShouldReturn:(UIT
3、extField *)textField; NotificationUITextFieldTextDidBeginEditingNotification; UITextFieldTextDidEndEditingNotification; UITextFieldTextDidChangeNotification;NetDragon Websoft Inc. 网龙(中国)UITextView继承树:UIScrollView : UIView : UIResponder : NSObject描述:UITextView是相对复杂可用作多行输入的控件 属性:text propertyfont prop
4、ertytextColor propertyeditable propertydataDetectorTypes propertytextAlignment propertyselectedRange property 方法: hasText: scrollRangeToVisible: 通告: UITextViewTextDidBeginEditingNotification UITextViewTextDidChangeNotification UITextViewTextDidEndEditingNotificationNetDragon Websoft Inc. 网龙(中国)Deleg
5、ate:- (BOOL)textViewShouldBeginEditing:(UITextView *)textView; - (BOOL)textViewShouldEndEditing:(UITextView *)textView;- (void)textViewDidBeginEditing:(UITextView *)textView; - (void)textViewDidEndEditing:(UITextView *)textView;- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange
6、)range replacementText:(NSString *)text; - (void)textViewDidChange:(UITextView *)textView;- (void)textViewDidChangeSelection:(UITextView *)textView;NetDragon Websoft Inc. 网龙(中国)UIButton继承树:UIControl:UIView : UIResponder : NSObject 讨论主题:1.button是什么。2.怎么创建button3.怎么使用button。NetDragon Websoft Inc. 网龙(中
7、国)什么是什么是buttonbuttonNetDragon Websoft Inc. 网龙(中国)创建方式: + buttonWithType: - initWithFrame:配置buttonbuttonType Font linebreakMode/当标题或者图片超过frame大小时采取的截断方式(3.x以后不用此属性) titleShadhowOffset/阴影的偏移量(3.x后不用此属性)怎么创建怎么创建buttonbuttonNetDragon Websoft Inc. 网龙(中国)-setTitle:forState: -setTitleColor:forState: -setTi
8、tleShadowColor:forState titleColorForState: titleForState: titleShadowColorForState:标题文字操作标题文字操作NetDragon Websoft Inc. 网龙(中国)设置状态: adjustsImageWhenHighlighted propertyadjustsImageWhenDisabled propertyshowsTouchWhenHighlighted property/Highlighted 表示点击后的状态 /forState通常这个state我可以设置为UIContrlStateNormal,
9、如果点击后需要做还图片的操作,我们可以设置 UIControlStateHeightLight的图片 imageForState: setBackgroundImage:forState: setImage:forState:设置边框 contentEdgeInsets property titleEdgeInsets property imageEdgeInsets property /设置边距使用UIEdgeInsets结构体,分别设置其上下左右的位置 即可。图片操作图片操作NetDragon Websoft Inc. 网龙(中国)添加事件:button addTarget:target
10、action:selector forControlEvents:UIControlEventTouchUpInside; / target:处理该事件的对象 selector:target需要调用的响应函数 event:响应哪种事 件事件类型:UIControlEventTouchDown / on all touch downs UIControlEventTouchDownRepeat / on multiple touchdowns (tap count 1) UIControlEventTouchDragInside / 内部拖动 UIControlEventTouchDragOut
11、side /外部拖动 UIControlEventTouchUpInside /手指点击在按钮内抬起 UIControlEventTouchUpOutside /手指点击拖动到按钮之外,抬起 UIControlEventTouchCancel /系统事件抢占了当前的点击事件,如来电, 或者另外手指点击了会退按钮。 UIControlEventValueChanged / UISwitch UIControlEventEditingDidBegin / UITextField添加事件添加事件NetDragon Websoft Inc. 网龙(中国)UIControlEventEditingCha
12、nged UIControlEventEditingDidEnd UIControlEventEditingDidEndOnExit UIControlEventAllTouchEvents UIControlEventAllEditingEvents UIControlEventApplicationReserved /下面两个系统用 UIControlEventSystemReserved NetDragon Websoft Inc. 网龙(中国)Button Button 使用示例使用示例NetDragon Websoft Inc. 网龙(中国)继承树:UIView : UIRespon
13、der : NSObject 描述:UIControl封装了触摸类型的接收和消息 的分发操作。是UIButton,UISlider, UITextField的父类。讨论内容: UIControl的使用时机 UIControl的常见问题UIControlUIControlNetDragon Websoft Inc. 网龙(中国)通常像到用户点击某个区域响应,对应的点击事件,我们 会用到UIButton。但是,UIButton有一些默认的处理比 如点击按钮后,按钮会变灰,弹起来时又恢复。如果要做 下图的效果?UIControlUIControl的使用时机的使用时机在我的秀,消息,好友,我们很显然可
14、以在UIControl 上加Label来完成。NetDragon Websoft Inc. 网龙(中国)UITextField 输入焦点没有居中问题: contentVerticalAlignment contentHorizontalAlignmentUIControl加到UIScrollView上失效的问题: 因为UIControl和UIScrollView都是继承自UIResponder ,他们对UIResponder的事件都作了处理,在消息循环中 只有一个对象可以处理消息,所以会导致失效,这时可以 用UIView来处理。UIControlUIControl常见问题常见问题NetDrag
15、on Websoft Inc. 网龙(中国)UISwith and UISliderUISwith and UISliderNetDragon Websoft Inc. 网龙(中国) 创建CGRect frame = CGRectMake(198.0, 12.0, 94.0, 27.0); switchCtl = UISwitch alloc initWithFrame:frame; switchCtl addTarget:self action:selector(switchAction:) forControlEvents:UIControlEventValueChanged; switchCtl.backgroundColor = UIColor clearColor;使用-(void)switchAction: (UISwitch *)sw if(sw.on)else UISwitch UISwitch 的创建和使用的创建和使用 NetDragon Websoft Inc. 网龙(中国)创建 sliderCtl = UISlider alloc initWithFrame:frame; sliderCtl addTarget:self action:s