1.UIView类

1.什么是视图

看得见的都是视图

2.什么是控件

一种特殊的视图,都是UIControl的子类,不仅具有一定的显示外观,还能响应高级事件,与用户交互。严格意义上UILabel不是控件,因为label不能响应用户交互事件。

3.术语的理解:

视图:一个大一点的显示区域,里面可以容纳控件,做容器讲

控件:容器中包含的子元素

2.UILabel标签

1. 是什么?

静态文本内容的展示控件

2.label属性

1)text:显示文本的内容

2)font:显示文本的字体

3)numberOfLines:默认为1,显示的最大行数,0表示无上限

4)lineBreakMode:换行模式, 省略头或尾

NSLineBreakByTruncatingHead, /* Truncate at head of line: "...wxyz" */

NSLineBreakByTruncatingTail, /* Truncate at tail of line: "abcd..." */

NSLineBreakByTruncatingMiddle /* Truncate middle of line:  "ab...yz"

5)adjustsFontSizeToWidth:是否调整字体大小适应控件宽度   YES  ;

6)  textColor:设置文本的颜色

例:

在 ViewController.m中

- (void)viewDidLoad

{

[super viewDidLoad];

//设计view

UILabel* label=[[UILabel alloc]init];

label.frame=CGRectMake(30, 200,400, 60);

//设置字体颜色

label.textColor=[UIColor whiteColor];

//设置最大显示行数

label.numberOfLines=2;

//设置标签内容的字体

label.font=[UIFont systemFontOfSize:20];

//设置换行模式

label.lineBreakMode=NSLineBreakByTruncatingHead;

//调整字体大小

//label.adjustsFontSizeToFitWidth=YES;

label.text=@"SunShine  SunShine  SunShine  SunShine   SunShine  SunShine   SunShine  SunShine  SunShine  SunShine";

//添加到控制器自带的那个视图里面

[self.view addSubview:label];

}

@end

效果如下:

3.UIButton按钮

1.什么是按钮?

可以与用户交互,能够点击的一种控件

2.创建方式

工厂方法创建,使用系统模式

3.常用属性

1)frame :按钮大小

2)backgroundColor:按钮背景色

3)setBackgroundImage:按钮背景图

1.点击images.xcassets文件,将要添加的图片拖拉进文本框,左边框修改图片名字

2.点击下方Show Slicing按钮

3.在下方进行缩小放大操作

4.点击图片中Start Slicing按钮进行裁剪,再点击中间按钮

5.九切片:横3线:1线范围不变,1-2线之间复制,2-3线裁剪省掉,3线不变

6.将照片名字添加到程序

//[button setBackgroundImage:[UIImage imageNamed:@"2a"] forState:UIControlStateNormal];

4)tintColor:按钮字体颜色

5)  setTitle:点击按钮的状态

UIControlStateNormal       = 0, 正常按下

UIControlStateHighlighted  = 1 << 0, 长按状态

UIControlStateDisabled     = 1 << 1,

UIControlStateSelected     = 1 << 2,

4.添加事件

***点一次按钮,执行调用一次方法

addTarget:为按钮添加响应事件,即点击按钮时需实现的功能

参数:  1.target:让当前控制器对象成为处理响应的对象

2.action:处理事件的对象所使用的方法

3.events:添加对按钮的什么事件的处理

[button addTarget:self action:@selector(Click) forControlEvents:UIControlEventTouchUpInside];

例:

在ViewController.m中

#import "ViewController.h"

@interface  ViewController ()

//设置全局变量

@property(nonatomic,strong)UILabel *label;

@end

@implementation  ViewController

-(void)viewDidLoad

{

[super viewDidLoad];

//使用工厂方法创建button对象

UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];

//设置frame属性

button.frame = CGRectMake(100,200,100, 40);

//设置按钮上的文字

[button setTitle:@"切换" forState:UIControlStateNormal];

// [button setTitle:@"KO" forState:UIControlStateHighlighted];

//设置按钮的背景色

//button.backgroundColor = [UIColor lightGrayColor];

//设置按钮的背景图

//[button setBackgroundImage:[UIImage imageNamed:@"2a"] forState:UIControlStateNormal];

//设置按钮的图片

[button setImage:[UIImage imageNamed:@"qw"] forState:UIControlStateNormal];

//为按钮添加响应事件

//target:让当前控制器对象成为处理响应的对象

//action:处理事件的对象所使用的方法

//events:添加对按钮的什么事件的处理

[button addTarget:self action:@selector(Click) forControlEvents:UIControlEventTouchUpInside];

//添加按钮到视图中

[self.view addSubview:button];

//添加一个UILable

UILabel *label = [[UILabel alloc]init];

self.label = label;

label.frame = CGRectMake(130,150,400, 40);

label.text = @"SunShine";

[self.view addSubview:label];

}

//处理事件的对象所使用的方法

-(void)Click{

self.label.text = @"Hello SunShine";

}

@end

效果如下:            

在AppDelegate.h中

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

self.window=[[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]];

//self.window=[[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];

self.window.backgroundColor=[UIColor greenColor];

//1.创建控制器的实例  myVC自带一个视图

ViewController* myVC=[[ViewController alloc]init];

//2.将控制器设置为window的根视图控制器

self.window.rootViewController=myVC;

//self.window.rootViewController=[ViewController new];

[self.window makeKeyAndVisible];

return YES;

}

做一个小的应用

界面中有一个按钮,每次按下按钮,界面多一个UILabel

要求:

1)label之间间隔10个点的距离

2)所有label和屏幕左边距离20个点

3)所有label宽300,高30

4)每个Label的内容进行叠加(Hello,Hello

SunShine,HelloSunShineSunShine,........)

#import "ViewController.h"

@interface ViewController ()

//@property(nonatomic,strong)UILabel* label;

@property(nonatomic,assign)int y;

@property(nonatomic,strong)NSMutableString* str;

@end

@implementation  ViewController

- (void)viewDidLoad{

[super viewDidLoad];

UIButton* button=[UIButton buttonWithType:UIButtonTypeSystem];

button.frame=CGRectMake(130,50,100,40);

button.backgroundColor=[UIColor whiteColor];

[button setFont:[UIFont systemFontOfSize:20]];

button.tintColor=[UIColor redColor];

[button setTitle:@"呈现" forState:UIControlStateNormal];

//[button setTitle:@"off" forState:UIControlStateHighlighted];

//响应事件

[button addTarget:self action:@selector(show) forControlEvents:UIControlEventTouchUpInside];

[self.view addSubview:button];

//初始化

self.y=100;

self.str=[[NSMutableString alloc]initWithString:@"Hello"];

}

-(void)show{

UILabel* label=[[UILabel alloc]init];

//label.backgroundColor=[UIColor purpleColor];

label.text=self.str;

label.frame=CGRectMake(20,self.y,300,30);

label.adjustsFontSizeToFitWidth=YES;

label.font=[UIFont systemFontOfSize:18];

label.textColor=[UIColor redColor];

[self.view addSubview:label];

//只改变当前使用的值,出了范围就是改变后的值

self.y+=35;

[self.str appendString:@"SunShine"];

}

@end

效果如下:

iOS开发~视图(UIView)与控件(UIControl)的更多相关文章

  1. ios开发中关闭textview控件的虚拟键盘

    在ios开发中,textfield控件在点击的时候出现虚拟键盘,关掉虚拟键盘可以通过虚拟键盘中的done button和点击view中的任意地方来关闭虚拟键盘. 1.第一种方法是textfield控件 ...

  2. iOS开发UI篇—UIScrollView控件介绍

    iOS开发UI篇—UIScrollView控件介绍 一.知识点简单介绍 1.UIScrollView控件是什么? (1)移动设备的屏幕⼤大⼩小是极其有限的,因此直接展⽰示在⽤用户眼前的内容也相当有限 ...

  3. iOS开发UI篇—UITableview控件基本使用

    iOS开发UI篇—UITableview控件基本使用 一.一个简单的英雄展示程序 NJHero.h文件代码(字典转模型) #import <Foundation/Foundation.h> ...

  4. iOS开发UI篇—UIScrollView控件实现图片缩放功能

    iOS开发UI篇—UIScrollView控件实现图片缩放功能 一.缩放 1.简单说明: 有些时候,我们可能要对某些内容进行手势缩放,如下图所示 UIScrollView不仅能滚动显示大量内容,还能对 ...

  5. iOS开发UI篇—UITableview控件简单介绍

    iOS开发UI篇—UITableview控件简单介绍 一.基本介绍 在众多移动应⽤用中,能看到各式各样的表格数据 . 在iOS中,要实现表格数据展示,最常用的做法就是使用UITableView,UIT ...

  6. iOS开发UI篇—UITableview控件使用小结

    iOS开发UI篇—UITableview控件使用小结 一.UITableview的使用步骤 UITableview的使用就只有简单的三个步骤: 1.告诉一共有多少组数据 方法:- (NSInteger ...

  7. iOS开发UI篇—UIScrollView控件实现图片轮播

    iOS开发UI篇—UIScrollView控件实现图片轮播 一.实现效果 实现图片的自动轮播            二.实现代码 storyboard中布局 代码: #import "YYV ...

  8. 【转】 iOS开发UI篇—UIScrollView控件实现图片轮播

    原文:http://www.cnblogs.com/wendingding/p/3763527.html iOS开发UI篇—UIScrollView控件实现图片轮播 一.实现效果 实现图片的自动轮播 ...

  9. 【iOS 开发】基本 UI 控件详解 (UIButton | UITextField | UITextView | UISwitch)

    博客地址 : http://blog.csdn.net/shulianghan/article/details/50051499 ; 一. UI 控件简介 1. UI 控件分类 UI 控件分类 : 活 ...

  10. iOS开发之七:常用控件--UISlider、UISegmentedControl、UIPageControl的使用

    一.UISlider的使用 其实UISlider在iOS开发中用的似乎不是很多,我们看到的用到的地方多是音乐播放器的音量控制,以及视频播放器中的音量控制. 还是记录一下吧! 1.常用属性 // 设置获 ...

随机推荐

  1. java socket报文通信(二)报文的封装

    昨天我们谈了怎么建立socket通信的服务端和客户端,今天我们就来谈一谈怎么封装报文. 什么是报文这里我就不在阐述了,不清楚的朋友可以自己去查资料.我们今天要谈的报文主要友以下几个部分组成: 3位同步 ...

  2. 加载gif图过渡效果

    加载gif图片,过渡效果: 调用: - (id)initWithGifView:(UIView *)view { self = [super initWithView:view]; if (self) ...

  3. 关于extern对变量的使用

    extern 是声明全局的变量的意思. 例如在一个工程中有两个cpp,一个是test.cpp一个是main.cpp . 我们在test.cpp中定义了一个int num;但是我们在main.cpp中想 ...

  4. Turbo Sort Add problem to Todo list Problem code: TSORT

    def heap_sort(ary): n = len(ary) first = int(n / 2 - 1) for start in range(first, -1, -1): # 3~0 rev ...

  5. python bottle使用多个端口(多个进程)提高并发

    我的程序是用python结合bottle框架写的,但bottle自带wsgi原本只是单进程单线程运行模式(Bottle 默认运行在内置的 wsgiref 服务器上面.这个单线程的 HTTP 服务器在开 ...

  6. 原 iOS面试题收集

    原 iOS面试题收集 发表于2年前(2013-07-22 13:47)   阅读(369) | 评论(0) 4人收藏此文章, 我要收藏 赞0 听云性能监测产品App.Server.CDN免费试用,绑定 ...

  7. jQuery对象转换为DOM对象

    第一种方法:借助数组下标来读取jQuery对象集合中的某个DOM元素对象. <script src="Scripts/jquery-1.4.1.js" type=" ...

  8. Keil "RECURSIVE CALL TO SEGMENT"彻底解决

    我们在做菜单程序或通过函数指针调用函数时,如果被调用的函数中有包含了常量字符串,那么经常会出现这样的的错误提示:"RECURSIVE CALL TO SEGMENT"意思是&quo ...

  9. C++指针初始化总结

    1.字符指针的初始化 在c语言中 "string"保存的就是首个字符所在的地址  所以可以把 字符串常量"string" 赋值给指针 char *p;  &qu ...

  10. UESTC_王之盛宴 2015 UESTC Training for Graph Theory<Problem K>

    K - 王之盛宴 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit  ...