UI基础UIView、Storyboard

摘要:
对故事板文件的理解用于描述软件界面。默认情况下,当程序启动时。将加载stroyboard。加载脚本时,将首先创建并显示箭头所示的控制器接口IBAction和IBOutletIBAction。从本质上讲,它是空的,允许方法具有连接IBOutlet的功能,而允许属性具有连接的功能。连接的方法代码已删除。但是,如果未删除连接,该方法可能无法找到错误u

storyboard文件的认识

  • 用来描述软件界面
  • 默认情况下,程序已启动就会加载Main.stroyboard
  • 加载storyboard时,会首先创建和显示箭头所指的控制器界面

IBAction和IBOutlet

  • IBAciton
    • 本质就是void
    • 能让方法具备连线的功能
  • IBOutlet
    • 能然该属性具备连线的功能

storyboard连线容易出现的问题

  • 连接的方法代码被删除,但是连线没有去掉
    • 可能会出现方法找不到错误
    • unrecognized selector sent to instance
  • 连接的属性代码被删掉,但是连线没有去掉
    • setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key

UIViewController (控制器) 的认识

  • 一个控制器负责管理一个大截面
  • 控制器负责界面的创建、事件处理等

类扩展

  • 格式

    @interface 类名()

      /** 属性、方法的声明 */

    @end

  • 作用
    • 为某个类增加额外的属性和方法声明
    • 可以写在 .h.m 文件中

项目属性

  • Product Name
    • 软件名称、产品名称、项目名称
  • Organization Identifier
    • 公司的唯一表示
    • 一般是公司域名的反写,比如com.XXX
  • Bundle Identifier
    • 软件的唯一标识
    • 一般是Organization Identifier + Product Name

UIView的常见属性

  • NSArray subviews
    • 所有的子控件
    • 数组元素的顺序决定着子控件的显示层级顺序(下标越大的,越显示在上面)

UIView的常见方法

  • addSubview:
    • 添加一个子控件
    • 使用这个方法添加的子控件会被塞到subviews数组的最后面
  • 可以使用下面的方法调整子控件在subview数组中的顺序
// 将子控件view插入到subviews数组的index位置
- (void)insertSubview:(UIView *)view atIndex:(NSInteger)index;

// 将子控件view显示到子控件siblingSubview的下面
- (void)insertSubview:(UIView *)view belowSubview:(UIView *)siblingSubview;
// 将子控件view显示到子控件siblingSubview的上面
- (void)insertSubview:(UIView *)view aboveSubview:(UIView *)siblingSubview;

// 将子控件view放到数组的最后面,显示在最上面
- (void)bringSubviewToFront:(UIView *)view;
// 将子控件view放到数组的最前面,显示在最下面
- (void)sendSubviewToBack:(UIView *)view;

免责声明:文章转载自《UI基础UIView、Storyboard》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇从源码看Spring Boot 2.0.1使用scipy进行聚类下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

java 将MySql数据库中的数据(某一列)取出放入数组中 转

转:http://blog.csdn.net/ewili/article/details/8605638 假设mysql中test数据库中有个表式score,有数据,我只取第一列的数据出来: public void mysqlConnection(){ try { Class.forName("com.mysql.jdbc.Driver").new...

oracle 嵌套表 老猫

一、嵌套表的定义:     嵌套表是表中之表。一个嵌套表是某些行的集合,它在主表中表示为其中的一列。对主表中的每一条记录,嵌套表可以包含多个行。在某种意义上,它是在一个表中存储一对多关系的一种方法。考查一个包含部门信息的表,在任何时间内每个部门会有很多项目正在实施。在一个严格的关系模型中,将需要建立两个独立的表department和project.   ...

js forEach参数详解,forEach与for循环区别,forEach中如何删除数组元素

 壹 ❀ 引 在JS开发工作中,遍历数组的操作可谓十分常见了,那么像for循环,forEach此类方法自然也不会陌生,我个人也觉得forEach不值得写一篇博客记录,直到我遇到了一个有趣的问题,我们来看一段代码: let arr = [1, 2]; arr.forEach((item, index) => { arr.splice(inde...

VB的学习及使用总结

 引言         在最近的一个需求当中,因为要用到VB的缘故,所以有机会了解了一下VB, 老实讲,我不喜欢这样的学习,本人是在一家银行从事外包工作的,主要从事Java 开发, 工作中就是负责好几个项目的运维,因为这些项目做的时间久了一点,再加上客户这边IT也不是很规范,每个系统、项目用到的技术和架构都是不一样的,可以说是百花齐放,所以有时候在一个项目中...

将一个文件夹中我们需要的文件拷贝到另一个文件夹中的代码实现

1 package cn.itsource.homework; 2 3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.io.FileOutputStream; 6 import java.util.ArrayList; 7 /** 8 * 需求:...

vue中的一些用法,持续更新中......

1、跳转用法 @1、在template模板中通常使用router-link to='url' @2、在js中 1、this.$router.push({path: ''/order/index''}); 2、this.$router.push({path: '/order/page1',query:{ id:'2'}}); 3、this.$router...