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. 重操JS旧业第七弹:面向对象与对象创建

    JS是一种完全面向对象的程序设计语言,在面向对象处理方面,具有多种多样的实现方式,加之对象成员的动态性使得这门语言更加灵活:而js对象成员动态性也是创建和扩展对象的有力方式. 1 对象成员动态性 属性 ...

  2. 基于visual Studio2013解决面试题之0602全排列

     题目

  3. javascript 学习资料网址一览

    1.http://www.runoob.com/ 2.https://developer.mozilla.org/zh-CN/ 3.http://www.imooc.com/   视频类

  4. 节点地址的函数list_entry()原理详解

    本节中,我们继续讲解,在linux2.4内核下,如果通过一些列函数从路径名找到目标节点. 3.3.1)接下来查看chached_lookup()的代码(namei.c) [path_walk()> ...

  5. Thinkphp入门 二 —空操作、空模块、模块分组、前置操作、后置操作、跨模块调用(46)

    原文:Thinkphp入门 二 -空操作.空模块.模块分组.前置操作.后置操作.跨模块调用(46) [空操作处理] 看下列图: 实际情况:我们的User控制器没有hello()这个方法 一个对象去访问 ...

  6. Android开源框架AsyncHttpClient (android-async-http)使用

    android-async-http 开源框架可以使我们轻松地获取网络数据或者向服务器发送数据,最关键的是,它是异步框架,在底层使用线程池处理并发请求,效率很高,使用又特别简单. 以往我们在安卓上做项 ...

  7. Spring MVC RedirectAttributes的用法解决办法

    Spring MVC RedirectAttributes的用法很久没发过技术贴了,今天对于一个问题纠结了2小时,遂放弃研究用另一种方法解决,奈何心中一直存在纠结,发帖求解 我先解释下什么是Redir ...

  8. 2013 CSU校队选拔赛(1) 部分题解

    A: Decimal Time Limit: 1 Sec   Memory Limit: 128 MB Submit: 99   Solved: 10 [ Submit][ Status][ Web ...

  9. Java学习JVM搞搞Jconsole呗

    无意间翻到这条博客:http://www.blogjava.net/zhvfeng/archive/2010/08/04/327956.html 这里还有个讲解的:http://www.kafka01 ...

  10. 使用wireshark常用的过滤命令

    使用wireshark常用的过滤命令 方法/步骤 过滤源ip.目的ip.在wireshark的过滤规则框Filter中输入过滤条件.如查找目的地址为192.168.101.8的包,ip.dst==19 ...