UIView:父类的所有控件,所有的UIView它是一个容器。可容纳其他UIView

UIController:用于控制UIView,责创建/销毁自己的UIView,显示/隐藏UIView。处理UIView和用户交互(事件处理)

界面的创建过程,先创建一个ViewController,再由其创建自己的UIView,最后把UIView显示到用户眼前,而且由UIViewController处理UIView的事件。

程序的启动过程:

载入配置为main的storyboard,创建白色箭头仅仅想的控制器对象。接下来创建控制其内部的UIView,显示到用户面前。

构件界面的两种方式:

1. 使用storyboard

要使用某个控件须要在控制器文件里声明该属性,并将其和控件连线。而且须要将该属性声明为IBOutlet类型

加入事件监听的时候须要将该方法声明为IBAction,然后将控件的某个事件和该方法连线

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2F1Y2h5d2VpZXJzdHJhc3M=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

点击事件运行的方法

- (IBAction)run:(id)sender
{
[self execWithBlock:^{
CGRect tempFrame;
switch ([sender tag]) {
case 1:
tempFrame = self.btn.frame;
tempFrame.origin.y += 10;
self.btn.frame = tempFrame;
break;
case 2:
// 旋转
//tempCenter = self.btn.center;
_btn.transform = CGAffineTransformRotate(_btn.transform, -1*M_PI_4);
//self.btn.center = tempCenter;
break;
case 3:
// 放大
_btn.transform = CGAffineTransformScale(_btn.transform, 1.2, 1.2);
break;
case 4:
// 复位
self.btn.transform = CGAffineTransformIdentity;
break;
}
}];}

-(void) execWithBlock:(void(^)())block
{
// 设置动画
[UIView beginAnimations:nil context:nil];
//设置动画的时间
[UIView setAnimationDuration:1];
block();
[UIView commitAnimations];
}

2.使用代码动态生成

须要在viewDidLoad方法里面构建控件。并将其加入到父UIView里面

UIButton * btn = [[UIButton alloc]init];
btn.frame = CGRectMake(0, 0, 100, 100);
[btn setTitle:@"哈哈" forState:UIControlStateNormal];
[btn setTitle:@"呵呵" forState:UIControlStateHighlighted]; [btn setBackgroundColor:[UIColor redColor]];
[btn setBackgroundColor:[UIColor greenColor]]; [btn addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn];

-(void) click:(id)btn
{
[btn setBackgroundColor:[UIColor blackColor]];
}

采用storyboard并使用代码来创建界面是一样的效果。于storyboard在此之后的连接可以关联属性的控件和声明。

iOS得知1_初体验的更多相关文章

  1. iOS AR技术初体验,使用EasyAR示例程序的小白指南

    QQ前两天的传递火炬,是我第一次直接接触到AR.(虽然之前听同事说过,因为他喜欢玩游戏,PS.3DS等等都玩过,这个技术最开始就是从这里出现的).所以感觉很有趣,就想自己也试着搞一下玩玩...下面是我 ...

  2. IOS - socket 编程初体验

    #import "ViewController.h" @interface ViewController () <NSStreamDelegate, UITextFieldD ...

  3. Xamarin.iOS开发初体验

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKwAAAA+CAIAAAA5/WfHAAAJrklEQVR4nO2c/VdTRxrH+wfdU84pW0

  4. IOS开发初体验

    IOS开发初体验 搭建开发环境 不多说什么了,开发环境的搭建太简单了,上App Store搜索XCode下载就行了,说多了都是眼泪 创建第一个IOS项目--HolleIOS 创建工程 选择工程创建位置 ...

  5. Java高级特性1_流库_初体验

    Java高级特性流库_初体验 面对结果编程 在编程里, 有两种编程方式, 一种是面对过程编程, 一种是面对结果编程. 两者区别如下 面向过程编程 面向过程编程需要编程程序让程序依次执行得到自己想要的结 ...

  6. Xamarin+Prism开发详解四:简单Mac OS 虚拟机安装方法与Visual Studio for Mac 初体验

    Mac OS 虚拟机安装方法 最近把自己的电脑升级了一下SSD固态硬盘,总算是有容量安装Mac 虚拟机了!经过心碎的安装探索,尝试了国内外的各种安装方法,最后在youtube上找到了一个好方法. 简单 ...

  7. 【腾讯Bugly干货分享】基于 Webpack & Vue & Vue-Router 的 SPA 初体验

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57d13a57132ff21c38110186 导语 最近这几年的前端圈子,由于 ...

  8. iOS7初体验(3)——图像资源Images Assets

    开始之前,首先回顾一下iOS7初体验(1)——第一个应用程序HelloWorld中的一张图,如下所示: 本文便分享一下Images.xcassets的体验~_~ 1. 打开此前使用过的HelloWor ...

  9. iOS7初体验(1)——第一个应用程序HelloWorld

    iOS7 Beta已经发布了,迫不及待地下载了iOS 7及Xcode 5并体验了一下.先做一个简单的Hello World看看都有哪些变化吧. 1. 启动Xcode5-DP: 2. 从菜单选择File ...

随机推荐

  1. RS100项目进展更新

    1. 添加手机界面访问网页,毕竟PDA的屏幕大小和PC机大小不一致,完成了一自适应网页,便于在手机上观看实时画面: 2. 此项目为一个远程视频监控+远程开关项目,远程PC机或者手机能操作到监控端的开关 ...

  2. 深入理解extern使用方法

    一. extern做变量声明 l  声明externkeyword的全局变量和函数可以使得它们可以跨文件被訪问. 我们一般把全部的全局变量和全局函数的实现都放在一个*.cpp文件中面,然后用一个同名的 ...

  3. .net面试题大全(有答案)

    在网上找来的,希望对大家有所帮助.     1 (1)面向对象的语言具有__继承性_性._封装性_性._多态性 性. (2)能用foreach遍历访问的对象需要实现 _ IEnumerable 接口或 ...

  4. 在DLL动态链接库中封装VCL的MDI子窗体

    在DLL动态链接库中封装VCL的MDI子窗体不多说了,看代码就应该明白了,曾经我遇到的问题,现在放出来大家共享! 这里是工程文件的部分: 在DLL中封装MDI子窗体需要重写DLL入口函数,具体代码如下 ...

  5. java输出空心菱形

    package com.zsh; import java.util.Scanner; public class Test08 { public static void main(String[] ar ...

  6. javascript属性一览

    getElementsByTagName() 方法可返回带有指定标签名的对象的集合. getElementsByName() 方法可返回带有指定名称的对象的集合. getAttribute() 方法返 ...

  7. JAVA Useful Program(1)

    public static void main(String[] args){       //字符串有整型的相互转换          String str=String.valueOf(123); ...

  8. openCV中cvSnakeImage()函数代码分析

    /*M/////////////////////////////////////////////////////////////////////////////////////// // // IMP ...

  9. 控制台程序的参数解析类库 CommandLine

    C#控制台程序的参数解析类库 CommandLine简单使用说明 前言 C#开发的控制台程序,默认接收string[] args参数.如果有多个参数需要输入时,可以按照顺序依次输入:但如果有些参数不是 ...

  10. vc 在edit控件中动态插入数据滚动显示

    内存从网上论坛摘抄整理 思路:给控件设置多行属性,设置垂直滚动条,Auto Vscroll设置为true,放入文本后把插入点设置到末尾 pEdit->LineScroll(pEdit->G ...