iOS开发初探(一)

iOS+React Native混合开发初探 一 前言: 虽然项目中一直没有混合开发的需求,但一直很好奇这一块。最近正好没什么需求了,所以决定来学习一下RN,并记录学习的过程和一些心得,希望大家能一起交流,共同进步。 一 搭建开发环境 1.必需的软件 Homebrew 打开终端,输入一下命令 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/ins... 阅读详情

    ios开发与桌面开发的很大不同在于:单窗口(对于单个屏幕而言),程序员绝大部分时间操作的对象是View和对应的Controller,此外对于移动设备,还要考虑过渡效果。

    与桌面软件不同,app的绝大部分数据被存放在controller中,此外,controller还要承担过渡效果;app的view是直接接受用户点击等事件的类。因此,overrrode相关view类的响应时间方法就可以custom自己的view。事件触发之后,将相应的消息传送给controller,由controller进行数据的处理,改变view的外观,以及与数据库、服务器进行通信(本节暂时不介绍这方面内容)。

    最常用的view controller就是navigation view controller 以及tab bar controller,对于view,比较方便的是使用现有的模版storyboard。以navigation view controller为例,它是一个container view controller,顾名思义,navigation view controller可以容纳多个view controller。整体上,view controller分为container view controller 和 content view controller, 前者可以认为是controller 树的非叶子节点,后者是显示具体内容如:图像,邮件,text等的直接与用户打交道的叶子节点controller。navigation view controller 包含了多个view以及它们各自对应的view controller,每一个view在assembled views中都有以一个navigation view item与之对应,并且具体的外观细节可以用代码修改,如下图1A所示。

 

    建立一个简单的app程序:

首先,要理解window只是一个虚的概念,我们能见到的都是一些view的集合,内部类的关系如下图:

每一个“控件”都是一个view,都有自己的controller,并可以进行深度的自定义。你看到的是一个view的集合,内部是一个树形的结构,因此有一个root view controller,它控制了其他所有的view以及controller,

    在xcode中,建立一个项目,选择empty application,创建后,它会自动生成一个代理类,关于这个类,会在下一节介绍。运行后,是一个空白的屏幕,因为我们的app中还没有任何view controller 和view,为了添加view,我们新建一个类。new->file->object class,选择继承自UIViewController,名字自拟,并勾选With Xib for User Interface,这里,xib'是一个xml文件,它定义了view的原始外观(因为动态的内容和运行后的改变在代码中实现),这也是一种当下很流行的界面开发模式。

    创建controller类之后,使用Interface Builder可以发现,已经出现了一个View类,但是我们看不到这个类的定义和实现代码,它就是刚刚创建的controller的view,是系统自动生成的,界面上它填满了整个window区域。右击File Owner或或者View都可以看到他们的关联关系,对于View在弹出的黑色窗口(Outlet)中,我们看到了一个view和View之间的连线,这个代表了界面元素和类之间的关联关系,view代表了controller中的view成员,View指的是界面中的View元素,Outlet亦可以在右边侧边栏中用拖拽的方式使用,以关联界面元素和定义的类或成员。

    在右侧的侧边栏,上面可以定义界面的各种属性,下面可以选择界面控件库中的各种元素。下面要做的是将Controller联系到delegate中去,打开AppDelegate.m文件,new一个我们定义好的Controller类,(以下用MyViewController代表)。

    MyViewController*  myViewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];

    [self.window setRootViewController: myViewController];

    第一句的作用是new并且用xib文件初始化一个Controller对象,这里引入了界面文件传给这个RootViewController,然后下一句将它设置为RootViewController。

    向View中添加若干库中的元素,然后编译,运行,OK~

(参考文章:http://www.techrepublic.com/blog/software-engineer/getting-started-with-ios-views-and-view-controllers-part-1/)

 

 

 

18.EC实战 新建项目工程并配置各个引脚的工作方式(持续更新) 本博文介绍了从零开始新建EC工程及对各个引脚进行了工作模式的初始化配置 阅读详情

相关推荐

Vivado ILA调试全攻略:从HDL实例化到Block Design的5个实战技巧

本文全面解析了Vivado集成逻辑分析仪(ILA)的五种核心调试方法,涵盖从HDL代码实例化到Block Design集成的实战技巧。详细对比了不同方法的优缺点与适用场景,并重点介绍了如何利用Debug Hub高效管理多时钟域复杂调试,旨在帮助FPGA开发者精准定位问题,显著提升板级调试效率。

weixin_29214199的博客 376

iOS8开发~UI布局(一)初探Size Class

一、新特性Size Class介绍 随着iOS8系统的发布,一个全新的页面UI布局概念出现,这个新特性将颠覆包括iOS7及之前版本的UI布局方式,这个新特性就是Size Class。Size Class配合Auto Layout可以解决所有(包括iPhone及iPad)iOS设备屏幕尺寸及屏幕旋转时候的UI适配问题 。 二、为什么要使用Size Class 直到i

冷小G的技术博客 1万+

岭回归的MATLAB步骤

MATLAB 实现框架,它涵盖了从数据导入到岭回归的步骤,包括计算共线性、使用 MAE、MSE、R²、MAPE 进行评价,以及绘制相应的可视化图表。

subject625Ruben的博客 1089

iOS:iOS8开发(一)~初探Size Class

一、新特性Size Class介绍 随着iOS8系统的发布,一个全新的页面UI布局概念出现,这个新特性将颠覆包括iOS7及之前版本的UI布局方式,这个新特性就是Size Class。Size Class配合Auto Layout可以解决所有(包括iPhone及iPad)iOS设备屏幕尺寸及屏幕旋转时候的UI适配问题 。 二、为什么要使用Size Class 直到iPh

小凡 ‘ Small growth 1880

重装系统后,恢复Oracle的.ORA文件

前几天,系统莫名奇妙产生很多宏病毒,进而感染整个C盘,不得已,格式化后重装了系统。 重装系统之后,突然想到D盘中的oracle中很多数据没导出来备份,安装文件下有很多有用的.ORA文件,抱着死马当活马医的态度,居然成功了。 1、将原来D盘(D:\oracle\product\10.2.0\oradata\orcl)下的数据文件备份下其他盘,将D盘的oracle目录名改成oracle1。安装数据

zhanggnol的blog 5551

PaddleOCR实战指南:从环境搭建到自定义模型训练

本文提供了PaddleOCR从环境搭建到自定义模型训练的完整实战指南。详细介绍了使用Anaconda或Docker搭建稳定开发环境、准备与标注数据集、进行文本检测与识别模型训练的核心步骤与参数调优技巧,并分享了数据增强、模型微调及解决实际项目难题的实用方法,帮助开发者高效掌握PaddleOCR应用。

gold的博客 642

iOS开发~UI布局(一)初探Size Class

随着iOS8系统的发布,一个全新的页面UI布局概念出现,这个新特性将颠覆包括iOS7及之前版本的UI布局方式,这个新特性就是Size Class。Size Class配合Auto Layout可以解决所有(包括iPhone及iPad)iOS设备屏幕尺寸及屏幕旋转时候的UI适配问题 。 二、为什么要使用Size Class 直到iPhone6发布后,目前iOS设备的屏幕尺寸已经有4种了,如...

weixin_30710457的博客 70

从传统扫描到SSN:Tessent数据包技术如何减少90%测试时间

本文深入探讨了Tessent流式扫描网络(SSN)如何通过其核心的数据包技术,彻底改变芯片测试范式。该技术将测试数据封装成标准化数据包,在共享总线上进行智能路由与分发,实现了动态带宽分配与核心独立测试,从而将复杂SoC(如AI芯片)的总体测试时间大幅削减90%,并显著提升测试灵活性与可扩展性。

meat5的博客 490
上一篇: Creating Custom Content View Controllers
下一篇: iOS开发初探(二)
cmdssd1
博客等级 码龄17年 24粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值