《二:iPhone的UI标准和基本UI控件课件》由会员分享,可在线阅读,更多相关《二:iPhone的UI标准和基本UI控件课件(40页珍藏版)》请在金锄头文库上搜索。
1、iPhone的基本UI控件使用,iPhone系统标准UI,UI控件使用,通过上节课的介绍,大家对于iPhone的整个框架和语法有了大致了解。本节课程将具体介绍iPhone的UI标准和UIView上的UI子控件。,上节回顾,iPhone系统标准UI介绍 UI规范 输入控件(UITextField / 返回NO讲禁止编辑 - (void)textFieldDidBeginEditing; / 当键盘得到焦点的时候,调用此方法 -(BOOL)textFieldShouldEndEditing; /如果返回NO将会限制键盘掉下 - (void)textFieldDidEndEditing: / 键盘已
2、经掉下 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string; / 返回no输入字符无效 -(BOOL)textFieldShouldClear:(UITextField *)textField; -(BOOL)textFieldShouldReturn:(UITextField *)textField; Notification UITextFieldTextDidBeginEditingNotif
3、ication; UITextFieldTextDidEndEditingNotification; UITextFieldTextDidChangeNotification;,UITextView,继承树:UIScrollView : UIView : UIResponder : NSObject 描述:UITextView是相对复杂可用作多行输入的控件 属性: text property font property textColor property editable property dataDetectorTypes property textAlignment property s
4、electedRange property 方法: hasText: scrollRangeToVisible: 通告: UITextViewTextDidBeginEditingNotification UITextViewTextDidChangeNotification UITextViewTextDidEndEditingNotification,Delegate: - (BOOL)textViewShouldBeginEditing:(UITextView *)textView; - (BOOL)textViewShouldEndEditing:(UITextView *)textV
5、iew; - (void)textViewDidBeginEditing:(UITextView *)textView; - (void)textViewDidEndEditing:(UITextView *)textView; - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text; - (void)textViewDidChange:(UITextView *)textView; - (void)textViewDidCha
6、ngeSelection:(UITextView *)textView;,UIButton,继承树:UIControl:UIView: UIResponder: NSObject 讨论主题: button是什么。 怎么创建button 怎么使用button。,什么是button,创建方式: + buttonWithType: - initWithFrame: 配置button buttonType Font linebreakMode/当标题或者图片超过frame大小时采取的截断方式(3.x以后不用此属性) titleShadhowOffset/阴影的偏移量(3.x后不用此属性),怎么创建bu
7、tton,-setTitle:forState: -setTitleColor:forState: -setTitleShadowColor:forState titleColorForState: titleForState: titleShadowColorForState:,标题文字操作,设置状态: adjustsImageWhenHighlightedproperty adjustsImageWhenDisabledproperty showsTouchWhenHighlightedproperty /Highlighted 表示点击后的状态 /forState通常这个state我可以
8、设置为UIContrlStateNormal,如果点击后需要做还图片的操作,我们可以设置UIControlStateHeightLight的图片 imageForState: setBackgroundImage:forState: setImage:forState: 设置边框 contentEdgeInsetsproperty titleEdgeInsetsproperty imageEdgeInsetsproperty /设置边距使用UIEdgeInsets结构体,分别设置其上下左右的位置即可。,图片操作,添加事件:button addTarget:target action:selec
9、tor forControlEvents:UIControlEventTouchUpInside; / target:处理该事件的对象 selector:target需要调用的响应函数 event:响应哪种事件 事件类型: UIControlEventTouchDown / on all touch downs UIControlEventTouchDownRepeat / on multiple touchdowns (tap count 1) UIControlEventTouchDragInside / 内部拖动 UIControlEventTouchDragOutside /外部拖动
10、UIControlEventTouchUpInside /手指点击在按钮内抬起 UIControlEventTouchUpOutside /手指点击拖动到按钮之外,抬起 UIControlEventTouchCancel /系统事件抢占了当前的点击事件,如来电,或者另外手指点击了会退按钮。 UIControlEventValueChanged / UISwitch UIControlEventEditingDidBegin / UITextField,添加事件,UIControlEventEditingChanged UIControlEventEditingDidEnd UIControlE
11、ventEditingDidEndOnExit UIControlEventAllTouchEvents UIControlEventAllEditingEvents UIControlEventApplicationReserved /下面两个系统用 UIControlEventSystemReserved,Button 使用示例,继承树:UIView: UIResponder: NSObject 描述:UIControl封装了触摸类型的接收和消息的分发操作。是UIButton,UISlider,UITextField的父类。 讨论内容: UIControl的使用时机 UIControl的常
12、见问题,UIControl,通常像到用户点击某个区域响应,对应的点击事件,我们会用到UIButton。但是,UIButton有一些默认的处理比如点击按钮后,按钮会变灰,弹起来时又恢复。如果要做下图的效果?,UIControl的使用时机,在我的秀,消息,好友,我们很显然可以在UIControl上加Label来完成。,UITextField 输入焦点没有居中问题: contentVerticalAlignment contentHorizontalAlignment UIControl加到UIScrollView上失效的问题: 因为UIControl和UIScrollView都是继承自UIResp
13、onder,他们对UIResponder的事件都作了处理,在消息循环中只有一个对象可以处理消息,所以会导致失效,这时可以用UIView来处理。,UIControl常见问题,UISwith and UISlider,创建 CGRect frame = CGRectMake(198.0, 12.0, 94.0, 27.0); switchCtl = UISwitch alloc initWithFrame:frame; switchCtl addTarget:self action:selector(switchAction:) forControlEvents:UIControlEventVal
14、ueChanged; switchCtl.backgroundColor = UIColor clearColor; 使用 -(void)switchAction: (UISwitch *)sw if(sw.on)else ,UISwitch 的创建和使用,创建 sliderCtl = UISlider alloc initWithFrame:frame; sliderCtl addTarget:self action:selector(sliderAction:) forControlEvents:UIControlEventValueChanged sliderCtl.background
15、Color = UIColor clearColor; sliderCtl.minimumValue = 0.0; sliderCtl.maximumValue = 100.0; sliderCtl.continuous = YES; sliderCtl.value = 50.0; 使用 - (void)SliderAction: (UISlider *)s Object.alpha = S.value/100.0f; ,UISlider 的创建和使用,UIActivityIndicatorView progressInd startAnimating; progressInd.activit
16、yIndicatorViewStyle = UIActivityIndicatorViewStyleGray; progressInd sizeToFit;,UIActivityIndicatorView,progressBar = UIProgressView alloc initWithFrame:frame; progressBar.progressViewStyle = UIProgressViewStyleDefault; progressBar.progress = 0.5; / progress 从0.01.0,UIProgressView,UIAlertView alert show; alert release; UIActionSheet *actionSheet = UIActionSheet alloc initWithTitle:UIActionSheet delegate:self cancelButtonTitle:Cancel destruct