iOS开发~视图(UIView)与控件(UIControl)
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)的更多相关文章
- ios开发中关闭textview控件的虚拟键盘
在ios开发中,textfield控件在点击的时候出现虚拟键盘,关掉虚拟键盘可以通过虚拟键盘中的done button和点击view中的任意地方来关闭虚拟键盘. 1.第一种方法是textfield控件 ...
- iOS开发UI篇—UIScrollView控件介绍
iOS开发UI篇—UIScrollView控件介绍 一.知识点简单介绍 1.UIScrollView控件是什么? (1)移动设备的屏幕⼤大⼩小是极其有限的,因此直接展⽰示在⽤用户眼前的内容也相当有限 ...
- iOS开发UI篇—UITableview控件基本使用
iOS开发UI篇—UITableview控件基本使用 一.一个简单的英雄展示程序 NJHero.h文件代码(字典转模型) #import <Foundation/Foundation.h> ...
- iOS开发UI篇—UIScrollView控件实现图片缩放功能
iOS开发UI篇—UIScrollView控件实现图片缩放功能 一.缩放 1.简单说明: 有些时候,我们可能要对某些内容进行手势缩放,如下图所示 UIScrollView不仅能滚动显示大量内容,还能对 ...
- iOS开发UI篇—UITableview控件简单介绍
iOS开发UI篇—UITableview控件简单介绍 一.基本介绍 在众多移动应⽤用中,能看到各式各样的表格数据 . 在iOS中,要实现表格数据展示,最常用的做法就是使用UITableView,UIT ...
- iOS开发UI篇—UITableview控件使用小结
iOS开发UI篇—UITableview控件使用小结 一.UITableview的使用步骤 UITableview的使用就只有简单的三个步骤: 1.告诉一共有多少组数据 方法:- (NSInteger ...
- iOS开发UI篇—UIScrollView控件实现图片轮播
iOS开发UI篇—UIScrollView控件实现图片轮播 一.实现效果 实现图片的自动轮播 二.实现代码 storyboard中布局 代码: #import "YYV ...
- 【转】 iOS开发UI篇—UIScrollView控件实现图片轮播
原文:http://www.cnblogs.com/wendingding/p/3763527.html iOS开发UI篇—UIScrollView控件实现图片轮播 一.实现效果 实现图片的自动轮播 ...
- 【iOS 开发】基本 UI 控件详解 (UIButton | UITextField | UITextView | UISwitch)
博客地址 : http://blog.csdn.net/shulianghan/article/details/50051499 ; 一. UI 控件简介 1. UI 控件分类 UI 控件分类 : 活 ...
- iOS开发之七:常用控件--UISlider、UISegmentedControl、UIPageControl的使用
一.UISlider的使用 其实UISlider在iOS开发中用的似乎不是很多,我们看到的用到的地方多是音乐播放器的音量控制,以及视频播放器中的音量控制. 还是记录一下吧! 1.常用属性 // 设置获 ...
随机推荐
- LNMP优化
LNMP优化 LNMP优化从系统安全,系统资源占用率,及web服务并发负载这三个方面体现,并 且主要体现在web服务并发负载这一方面. 1:首先进行linux优化加固 Linux ...
- js处理数学经典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一 对兔子,假如兔子都不死,问每个月的兔子总数为多少?
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- (一)原生JS实现 - 基本类方法
类 var Class = { create: function() { return function() { this.initialize.apply(this, arguments); } } ...
- libcurl下载文件简易demo
size_t test_save(void *ptr, size_t size, size_t nmemb, void *stream) { size_t sizes = size * nmemb; ...
- (原)torch和caffe中的BatchNorm层
转载请注明出处: http://www.cnblogs.com/darkknightzh/p/6015990.html BatchNorm具体网上搜索. caffe中batchNorm层是通过Batc ...
- 安装hadoop1.2.1集群环境
一.规划 (一)硬件资源 10.171.29.191 master 10.173.54.84 slave1 10.171.114.223 slave2 (二)基本资料 用户: jediael 目录 ...
- Python核心编程(第七章)--映像和集合类型
字典:它是一个容器类型,能存储任意个数的Python对象,也包括其他容器类型,Python的字典是作为可变的哈希表实现的 映像类型中的数据是无序排列的 可以用工厂方法dict()来创建字典,也可以 ...
- 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 ...
- Oracle 10.2数据库管理员指南-27章
27使用调度程序 Oracle Database provides database job capabilities through Oracle Scheduler (the Scheduler) ...
- SpotMini末端控制策略
相信很多人都注意到了“机器人学家”两天前推送的Boston Dynamics新机器人Spot-Mini.除了一如既往独领风骚的步态控制外,这次BD还给机器人增加了一个机械臂.视频中的一幕挺有趣,就是S ...