Objective-C:UIToolBar控件的使用

UIToolBar控件:是经常使用的一个工具条控件,在它里面可以添加很多其他控件,UILabel、UIButton、UIImage、UIBarButtonItem、UITextField等等、、。可以用来对视图view中控件进行自定义的布局。视图布局完成后,可以直接拿来用,不用再用代码去控制控件的坐标和大小,方便而且准确。

一、采用系统默认.xib文件中的UIToolBar制作的增删条(删除和添加图片)

(1)添加有两个标签Label的系统设置的UIToolBar

  代码如下:需要在代码中为添加的控件人为设置frame具体坐标x,y、大小width,height

 1 #import "ViewController.h"
 2 #define CONTACE_VIEW_HEIGHT 50
 3 @interface ViewController ()
 4 @property (weak, nonatomic) IBOutlet UIToolbar *toolBar;
 5 @property (weak, nonatomic) IBOutlet UIBarButtonItem *barButtonitemDelete;
 6
 7 @end
 8
 9 @implementation ViewController
10 - (IBAction)addContact:(UIBarButtonItem *)sender
11 {
12
13     //让删除按钮有效
14     [self.barButtonitemDelete setEnabled:YES];
15
16     //在subView中已经有了3个控件
17     NSInteger count = self.view.subviews.count - 3;
18     CGRect lastFrame = self.toolBar.frame;
19
20     UIView *contactView = [[UIView alloc]init];
21     CGFloat gapY = 5;
22     CGFloat x = 0;
23     CGFloat y = lastFrame.origin.y + lastFrame.size.height + (CONTACE_VIEW_HEIGHT+gapY) * count;
24     CGFloat w = self.view.frame.size.width;
25
26     contactView.frame = CGRectMake(x,y,w,CONTACE_VIEW_HEIGHT);
27
28
29     //添加头像
30     UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.png",arc4random_uniform(9)]];
31     UIImageView *face = [[UIImageView alloc]initWithImage:image];
32     face.frame = CGRectMake(10, 0,50,50);
33     [contactView addSubview:face];
34
35     //添加姓名
36     UILabel *labelName = [[UILabel alloc]init];
37     labelName.text = [NSString stringWithFormat:@"name%d",arc4random_uniform(10)];
38     labelName.frame = CGRectMake(10+image.size.width+50, 0, 100, 50);
39     [contactView addSubview:labelName];
40
41
42     contactView.backgroundColor = [UIColor lightGrayColor];
43
44     [self.view addSubview:contactView];
45 }
46 - (IBAction)deleteContact:(UIBarButtonItem *)sender
47 {
48     //删除视图
49     UIView *lastView = [self.view.subviews lastObject];
50     [lastView removeFromSuperview];
51
52     //如果没有了contactView,设置删除按钮无效
53     if(self.view.subviews.count == 3)
54     {
55         [self.barButtonitemDelete setEnabled:NO];
56     }
57 }
58
59 - (void)viewDidLoad {
60     [super viewDidLoad];
61     //开始时删除设置为无效
62     [self.barButtonitemDelete setEnabled:NO];
63 }
64
65 - (void)didReceiveMemoryWarning {
66     [super didReceiveMemoryWarning];
67     // Dispose of any resources that can be recreated.
68 }

  二、采用提前自定义布局的.xib文件中的UIToolBar制作的增删条(删除和添加图片)

(2)添加UIImage、UILabel控件后自定义的UIToolBar

    

    代码如下:不需要在代码中再去设置添加控件的frame,在.xib文件中已经布局好了。

 1 import "ViewController.h"
 2 #define CONTACE_VIEW_HEIGHT 50
 3 @interface ViewController ()
 4 @property (weak, nonatomic) IBOutlet UIToolbar *toolBar;
 5 @property (weak, nonatomic) IBOutlet UIBarButtonItem *barButtonitemDelete;
 6
 7 @end
 8
 9 @implementation ViewController
10 - (IBAction)addContact:(UIBarButtonItem *)sender
11 {
12
13     //让删除按钮有效
14     [self.barButtonitemDelete setEnabled:YES];
15
16     //在subView中已经有了3个控件
17     NSInteger count = self.view.subviews.count - 3;
18     CGRect lastFrame = self.toolBar.frame;
19
20     //加载xib文件
21     NSArray *views = [[NSBundle mainBundle]loadNibNamed:@"contactView" owner:nil options:nil];
22
23     //添加contactView
24     UIView *contactView = [views lastObject];
25
26
27     CGFloat gapY = 5;
28     CGFloat x = 0;
29     CGFloat y = lastFrame.origin.y + lastFrame.size.height + (CONTACE_VIEW_HEIGHT+gapY) * count;
30     CGFloat w = self.view.frame.size.width;
31     contactView.frame = CGRectMake(x,y,w,CONTACE_VIEW_HEIGHT);
32
33
34     //添加头像
35     UIImageView *face = (UIImageView *)[contactView viewWithTag:1];
36     UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.png",arc4random_uniform(9)]];
37     [face setImage:image];
38
39
40
41     //添加姓名
42     UILabel *labelName = (UILabel *)[contactView viewWithTag:2];
43     labelName.text = [NSString stringWithFormat:@"name%d",arc4random_uniform(10)];
44
45     [self.view addSubview:contactView];
46 }
47
48 - (IBAction)deleteContact:(UIBarButtonItem *)sender
49 {
50     //删除视图
51     UIView *lastView = [self.view.subviews lastObject];
52     [lastView removeFromSuperview];
53
54     //如果没有了contactView,设置删除按钮无效
55     if(self.view.subviews.count == 3)
56     {
57         [self.barButtonitemDelete setEnabled:NO];
58     }
59 }
60
61 - (void)viewDidLoad {
62     [super viewDidLoad];
63     //开始时删除设置为无效
64     [self.barButtonitemDelete setEnabled:NO];
65 }
66
67 - (void)didReceiveMemoryWarning {
68     [super didReceiveMemoryWarning];
69     // Dispose of any resources that can be recreated.
70 }
71
72 @end
时间: 2024-07-31 14:26:54

Objective-C:UIToolBar控件的使用的相关文章

iOS:UIToolBar控件的使用

UIToolBar控件:是经常使用的一个工具条控件,虽然在上面可以添加子控件,但是toolbar中只能添加UIBarButtonItem类型的子控件,其他子控件会被包装成这种类型的,例如UIButton.通过工具栏可以用来对视图View中内容进行操作. 原理: 可以在toolBar上添加任何子控件.其实它的原理是把你要添加的子控件先加到toolbarItems数组里面,最后再把toolbarItems数组一次性放到toolbar工具栏里面. 虽然可以在toolbar中添加其他任何的视图控件如UI

iOS开发UI篇—DatePicker和UIToolBar控件简单介绍

iOS开发UI篇—DatePicker和UIToolBar控件简单介绍 一.Date Picker控件 1.简单介绍: Date Picker显示时间的控件 有默认宽高,不用设置数据源和代理 如何改成中文的? (1)查看当前系统是否为中文的,把模拟器改成是中文的 (2)属性,locale选择地区 如果默认显示不符合需求.时间有四种模式可以设置,在model中进行设置 时间可以自定义(custom). 设置最小时间和最大时间,超过就会自动回到最小时间. 最大的用途在于自定义键盘:弹出一个日期选择器

【IOS 开发】基本 UI 控件详解 (UIDatePicker | UIPickerView | UIStepper | UIWebView | UIToolBar )

转载注明出处 : http://blog.csdn.net/shulianghan/article/details/50348982 一. 日期选择器 (UIDatePicker) UIDatePicker 属性截图 : 1. UIDatePicker 控件属性 (1) Mode 属性 Mode 属性 : 用于设置 UIDatePicker 模式; -- Date 属性值 : 显示日期, 不显示时间; -- Time 属性值 : 显示时间, 不显示日期; -- Date and Time 属性值

iOS: 工具栏控件UIToolBar和工具栏按钮控件UIBarButtonItem的使用

一.工具栏控件:UIToolBar:UIView 介绍: ToolBar工具栏是视图View的属性,可以在工具栏上添加工具栏按钮Bar Button Item(可以是自定义的Custom.也可以是系统自带的BarButtonSystemItem ),视图控制器可以通过工具栏项对视图中内容进行操作. 注意事项: 在导航栏控制器中会有一个UIToolBar实例,但默认是隐藏的,如果需要显示,需要通过这个方法将其打开: 在这里需要注意的是,与UINavigationBar类似,导航控制器拥有且只拥有一

IOS之基本UI控件

3.1 Button控件 3.2 开关控件 3.3 滑块控件 3.4 工具栏 3.5 WebView 3.1 Button控件 iPhone的Button控件可以做的很绚丽,Button可以有多种状态: " Default State " Highlighted State " Selected State " Disabled State 实现上图的效果:新建ButtonsBackground项目: ButtonsBackgroundViewController.

设置控件全局显示样式 appearance

iOS5及其以后提供了一个比较强大的工具UIAppearance,我们通过UIAppearance设置一些UI的全局效果,这样就可以很方便的实现UI的自定义效果又能最简单的实现统一界面风格,它提供如下两个方法. + (id)appearance 这个方法是统一全部改,比如你设置UINavBar的tintColor,你可以这样写:[[UINavigationBar appearance] setTintColor:myColor]; + (id)appearanceWhenContainedIn:

读书笔记-UIView与控件

1.UIView 在Objective-C中,NSObject是所有类的“根”类.同样,在UIKit框架中,也存在一个如此神奇的类UIView.从继承关系上看,UIView是所有视图的根. 1.1.UIView家族 UIView大体分为“控件”和“视图”两类,二者均继承于UIView. UIControl类是控件类,之所以这样称呼,是因为它们都有能力响应一些高级事件.UIControl类以外的视图没有这些高级事件. 1.2.应用界面的构建层次 下图(左)是一个应用界面的构建层次图,该应用有一个U

iOS:提示框(警告框)控件UIActionSheet的详解

提示框(警告框)控件2:UIActionSheet 功能:当点击按钮或标签等时,弹出一个提示框,显示必要的提示,然后通过添加的按钮完成需要的功能.它与导航栏类似,它继承自UIView. 风格类型: typedef NS_ENUM(NSInteger, UIActionSheetStyle) { UIActionSheetStyleAutomatic        = -1,       //iOS系统自动默认的风格 UIActionSheetStyleDefault          = UIB

控件参数的选择

在控制器的类扩展里面 咱们会通常定义控件 1.和stroyBoard上面关联 这时候用weak去修饰 因为当咱们从storyBoard移除时就不会再有强引用,会自己释放 2.为了进行赋值 用weak 去修饰 当咱们从一个作用域到另一个作用域时,必须要通过在类扩展里面进行一次声明属性,通过赋值,进行作用域的跳转 3.控件进行懒加载 要用strong 当控件不一定被创建的时候,如果用也是频繁的使用时 比如: #pragma mark - 重写didSelectRow.. 这个方法 - (void)t