iOS-ui-normal_ui_control

原创 2015年07月07日 17:27:00
苹果的ui控件都是以UI开头,比如UISlider、UIView、UISwitch、UITextField。所以,在查找一个控件时,查找关键字的开始是UI。


很多控件都是UIControl,所有UIControl都是UIView。
静态控件,一般只用于显示信息,不交互,如label和imageView。
动态控件,如按钮等,一般用于交互。
被动控件,如文本控件,能交互,一般记录信息,配合其它事件使用。


图片视图UIImageView。
继承于UIView。可以直接在xib中拖出image view,然后在属性控制面板设置它的图片(只能是png),与及其它属性。但一般在代码里面写会更灵活并有成就感---同样在viewController(就是File’s Owner)里面定义IBOutlet,然后在xib里面按住control键关联拉出来的imageView与代码里面的变量。这样定义变量:
@interface uiTest3ViewController : UIViewController {
    IBOutlet UIImageView* myImageView;
}


@property (nonatomic, retain) UIImageView* myImageViw;


@end
程序在加载xib时,这个图片视图就给创建了(所以代码里面不要再创建,只管在dealloc里面释放即可),然后找时机给这个图片视图设置图片,在viewDidLoad里面设置即可,调用这个函数时说明xib已经加载完了,实例已经可以使用了:
- (void)viewDidLoad
{
    myImageView.image = [UIImage imageNamed: @"Default.png"];
   [super viewDidLoad];
}


文本字段UITextField
在xib中直接拖出TextField,然后设置它的属性。Placeholder属性是文本控件未编辑时以灰色显示的提示。Return Key属性是在编辑文本时弹出的键盘中回车键处显示的内容(可以是Done,Search等)。其它属性可自行设置。
用户在按下键盘的“Done”键完成输入时,键盘应该消失掉,实现的方法是让文件字段失去焦点即放弃第一响应者(第一响应者就是正在交互的有焦点的控件)。给文件字段的事件Did End On Exit添加一个事件方法,且关联起来。这个事件方法可以这样写:
- (IBAction) editDone: (id)sender
{
    [sender resignFirstResponder];
}
这样,按下”Done”键时键盘就会消息掉。
如果想做到点击文本字段外的其它地方(非可编辑的地方)键盘也消失掉,可以这样实现:在xib中,点View图标(在First Responder图标下面),然后在Identity面板,把Class从UIView改成UIControl,让这个view变成一个control,这样再在control视图上右击时就可以看到有很多事件可以处理了,选择Touch Down,为这个事件添加一个事件方法,方法里面让所有文本字段resignFirstResponder即可。
在xib上拖动控件时,注意使用蓝色的引导线,可以高效的调整控件大小与位置。


滑块UISlider
可以在属性面板里面设置这个实例的取值范围,以及它的初始值。
常用的事件是Value Changed,在滑动滑块时就会触发这个事件。


开关UISwitch
UISwitch* switcher = (UISwitch*)sender;
   BOOL bIsOn = [switcher isOn];
   [leftSwitch setOn: bIsOn animated: YES];

标签UILabel
按钮UIButton

分段控件UISegmentedControl
使用这个控件可以实现分页显示的效果。在xib里面拉出一个segmented control,可以设置属性Segments,用来显示几个分段,最少2个。然后可以设置每一个分段的标题、图片,以及程序初始化时分段是否被选中等属性。
在分段被选择点击时,触发Value Changed事件,应该添加事件方法,如:
- (IBAction) segmentValueChange: (id)sender
{
    UISegmentedControl* segContrl = (UISegmentedControl*)sender;
    if ([segContrl selectedSegmentIndex] == 0)
    {
       
}
    else
    {
       
}
}




操作表UIActionSheet
操作表是一个模态框,需要在另一个view上面显示。
操作表创建与显示的例子:
- (IBAction) buttonPressed: (id)sender
{
    UIActionSheet* actonSheet = [[UIActionSheet alloc] initWithTitle: @"confirm" 
        delegate: self 
     cancelButtonTitle: @"取消" 
 destructiveButtonTitle: @"继续" 
 otherButtonTitles: @"more", nil];
   [actonSheet showInView: self.view];
   [actonSheet release];
}
操作至少会有一个取消按钮与一个继续按钮,标题可自行设置。可以有更多的按钮,与nil来结尾即可,显然都是一个标题对应一个按钮。actionSheet与self进行交互,所以要求self是actionSheet能够识别的类型,这种类型就是UIActionSheetDelegate,所以self对应的类(就是viewController)应该继承于这个协议。然后self类应该实现协议方法,比如:
- (void) actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex
{
    if ([actionSheet cancelButtonIndex] != buttonIndex)
    {
       UIAlertView* alerView = [[UIAlertView alloc] initWithTitle: @"信息通知" 
  message: @"information: nothing" 
delegate: nil 
 cancelButtonTitle: @"知道了" 
  otherButtonTitles: @"ok", nil];
[alerView show];
[alerView release];
}
}




警报UIAlertView
警报用来提供通知。
警报的创建与显示同上面的例子。同样有标题、正文与按钮。当不需要处理协议方法时,delegate填nil即可。以下是一个显示信息的封装函数:
- (void) msgBox: (NSString*) info
{
    UIAlertView* alerView = [[UIAlertView alloc] initWithTitle: @"..."
message: info
delegate: nil
cancelButtonTitle: @"收到"
otherButtonTitles: nil];
[alerView show];
[alerView release];
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

iOS UI05_Control

毛玻璃效果 动态图 音频 滑块 点击条// // MainViewController.m // UI05_Control // // Created by dllo on 15/8/4...

经典 -Writing a UI Automation Provider for a Win32-based Custom Control

Do you have a complex custom control that you want to make programmatically accessible, but you aren...

Control的Invoke和BeginInvoke 是相对于支线线程(因为一般在支线线程中调用,用来更新主线程ui)Invoke立即插入主线程中执行,而BeginInvoke 要等主线程结束才执行

近日,被Control的Invoke和BeginInvoke搞的头大,就查了些相关的资料,整理如下。感谢这篇文章对我的理解Invoke和BeginInvoke的真正含义 。 (一)Control的I...

Control的Invoke和BeginInvoke 是相对于支线线程(因为一般在支线线程中调用,用来更新主线程ui)Invoke立即插入主线程中执行,而BeginInvoke 要等主线程结束才执行

转自:http://www.cnblogs.com/c2303191/articles/826571.html 近日,被Control的Invoke和BeginInvoke搞的头大,就查了些...

ui page control and scrollview with indicator at bottom

1. uipagecontrol是被动的,放大宽度,可选择的点会对应page的数目  2.主动作用还在enable paging的那个scrollview controller 3. ui...
  • gnicky
  • gnicky
  • 2012-04-17 20:47
  • 1192

使用SWT中的Control UI和GridLayout实现类似eclipse preferences 窗口的布局

最近在学习和研究eclipse插件的开发, 从SWT 框架 入手. 把SWT的窗口小部件, 容器, 布局方式梳理了一下, 写出了一些比较综合的包含各种窗口小部 件的 布局 案例, 下面是一个比较完...
  • jarip
  • jarip
  • 2013-05-25 15:57
  • 1203

swift UI专项训练30 Segmented Control段控件

有时候我们需要给页面分段,也就是分组。基类是UISegmentedControl,下面展示它的属性: 基本上就是几段,段的标题,每一段的图像。现在我们来拖动一个段,默认的是两段,把它的段数设...

swift UI专项训练29 Page Control页控件

有时候我们的页面很大需要滚动只用滚动条滚动可以不太精确,这就需要用到Page Control,就像我们平时操作iphone一样,每一页都有一些APP,页面的个数是用小点标示的,每次一滑动就会切换页面,...

How does “Coded UI test” finds a control ?

转自:http://blogs.msdn.com/b/balagans/archive/2009/12/28/9941582.aspxCoded UI tests allows user to cap...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)