首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

设计师应该了解iOS应用开发基础知识

重复执行两次这样操作,使Tab Bar Controller当中包含3个View Controller,此时我们也可以在编辑区当中看到,默认View Controller标签栏里已经有了3个未命名...View(视图)和Controller(控制器)都是MVC开发模式(Model View Controller)组成部分。...其中"Model"包括数据和算法等方面,“View”涉及软件的人机交互界面,而“Controller”负责将这两者衔接起来,对用户行为进行处理;而View Controller即是指专门负责某个特定View...图片在文档结构列表展开这个View Controller,选中其中“Tab Bar Item”,然后到属性检查器当中将“Title”设置为“Home”,并在“Image”下拉列表中选择我们之前导入图片文件之一...确保在Xcode左侧导航栏里选中HomeViewController.xib文件,在文档结构列表中选择“View”对象,然后在右侧属性检查器(Attributes inspector)中找到最上面的

82930

Objective-C 9 种避免使用 Xcode 预处理器宏方法

本文是Objective-C 代码气味系列文章一篇。 这是一个可以在终端运行便捷命令。它可以检查并显示当前目录下源文件,预处理器宏使用情况,你应该仔细检查。...2、Macros - 宏 Smell #define WIDTH(view) view.frame.size.width 使用 Objective-C 并不意味着不能使用普通 C 语言函数!...除非您自定义宏依赖于 Xcode 预处理器宏(__LINE__),否则请将其重写为一个独立函数。(即便依赖于 Xcode 预处理宏,也要让您宏调用另一个函数,并尽可能多地转移到该函数)。...常量字符串通常在多个文件中共享,因此这里介绍如何在 .h 文件声明常量: extern NSString *const JMRResponseSuccess; 因此,.m 文件定义是 NSString...如果你代码存在多个特定于平台子类层次结构,你可能会发现使用桥接模式机会。 避免使用 Xcode 预处理器宏! 请再次在终端执行此命令,以查找代码可能违规 Xcode 预处理器宏。

9410
您找到你想要的搜索结果了吗?
是的
没有找到

测试 View Controllers

幸好,我们在更轻量 view controller 这篇文章阐述技术可以让测试更加简单。通常,如果你发现有些地方很难做测试,这就说明你设计出了问题,你应该重构它。...在 Xcode 5 SenTestingKit 已经被 XCTest 完全取代,不过两者使用上没有太多区别,我们可以通过 Xcode  Edit -> Refactor -> Convert to...特别地,STAssert宏将会做琐碎检查。注意,前缀 ST 源自于 SenTestingKit。这些宏和Xcode 集成,会把失败显示到侧边面板Issues导航栏。...它是个 UITableViewController 子类,它使用了我们刚才测试过 data source。View controller 剩下代码已经相当简单了。...另一种有趣选择是创建单独测试 bundle 来自动化性能测试。你可以在测试方法里做任何你想做。定时调用一些方法并使用 STAssert 来检查它们是否在特定阈值里面是其中一种选择。

71920

ARKit 配置-在您AR项目的幕后

在本节,我们将看看如何在后面配置提供ARKit模板。我们将发现什么是世界跟踪和AR会话。同样,我们将学习如何将一些调试选项应用于场景指导。...下载 要学习本教程,您需要Xcode 10或更高版本,以及导入3D模型最终Xcode项目。您可以下载本节最终Xcode项目,以帮助您与自己进度进行比较。...它带有一个默认视图View Controller,它是运行应用程序时第一个视图,如右箭头所示。好吧,那就是你没有定义一个启动画面。...检查器 在右侧面板,有与场景编辑器不同检查器。有文件检查器,快速帮助检查器,身份检查器,属性检查器, 大小检查器和连接检查器。 对象库 在检查左上方,有一个圆形图标,用于存储对象。...统计信息提供有关场景渲染性能信息,每秒帧数(fps),动画,物理等.Apple建议将fps设置为60.在您设备上,您可以单击+按钮展开统计栏更多细节。

2.5K20

扒虫篇-Debug几个实用方法

(2)条件断点 点击Xcode editor‘gutter’来添加断点,右键点击断点,然后选择“edit breakpoint”来设置特定条件。 ?...LLDB常用命令如下: 1, p (print)用于输出基本类型, p (int)[[[self view] subviews] count] 输出子视图个数。...Clang静态代码分析,可以从代码查找特定类型内存安全问题。Valgrind之类程序可以在运行时检测到不安全内存访问。 Address Sanitizer是另外一种解决方案。...六.Instruments检查器 提起检查器,我们有时会忽略Xcode本身自带显示CPU,内存,网络测试界面的使用,尤其是对流量统计是比较实用。 ?...the app delegate, the root view controller on the key window, and more.

1.5K10

在React Native构建启动屏

在这个教程,我们将演示如何在React Native构建一个启动屏幕。我们将指导你如何使用 react-native-splash-screen 为iOS和Android应用构建出色欢迎界面。...此外,由于Expo很受欢迎,许多人常常选择使用它,我们也将探讨如何在Expo构建启动屏幕。 什么是启动画面? 启动画面是用户访问应用程序其余功能之前出现第一个屏幕。...选择 View Controller Scene > View Controller > View,点击 SplashScreen 和 Powered by React Native 标签,并在键盘上按...接下来,选择 View 并点击 Xcode 右上角尺子图标。...启动画面有助于强化应用程序身份,使其容易被用户识别,从而提高品牌建设。 通常,某些配置和资源(字体和检查更新)会在应用准备就绪时立即实施。

38510

Java一分钟之-Java GUI设计原则与模式

分层架构 原则 MVC(Model-View-Controller) :模型负责数据管理,视图负责展示,控制器负责处理用户交互。这三者分离可以提高代码可维护性和可扩展性。...组件复用 原则 组件化设计:将常用功能封装成可复用组件,减少重复代码,提高开发效率。 易错点 过度定制:为满足特定需求而过度定制组件,导致难以复用。...代码示例 下面是一个简单MVC模式示例,展示如何在Java Swing应用这一设计原则: // Model class User { private String name;...// 保存逻辑... } } 常见问题与避免策略 布局混乱:使用布局管理器(FlowLayout, GridLayout, BoxLayout)而非绝对定位,以适应不同大小窗口。...资源泄露:确保释放不再使用资源,如图片、字体等,使用try-with-resources语句。 忽略国际化:在设计初期考虑多语言支持,使用ResourceBundle存储界面文本。

11510

View编程指南(二)

它与您应用程序View controller协同工作,以方便更改。 在iOS,Windows没有标题栏,关闭框或其他视觉装饰。一个window始终只是一个或多个view空白容器。...例如,如果在window坐标中提供了一个值,那么在尝试使用它之前,可能需要将其转换为特定view坐标系。 使用window通知来跟踪与window相关更改。...在Interface Builder创建Windows 使用Interface Builder创建应用程序main window非常简单,因为Xcode项目模板可以帮你实现。...重要提示:在Interface Builder创建window时,建议您在属性检查启用“全屏启动”选项。如果此选项未启用且您window小于目标设备屏幕,则某些view不会接收触摸事件。...注意:如果windowrootview由容器view控制器(选项卡栏控制器,导航控制器或分割view控制器)提供,则不需要自行设置view初始大小。

79610

iOS开发 Xcode各种调试、DEBUG

所以我们这么做: 编辑断点 添加条件Condition 还可以Action在条件断点触发时执行事件 :输出信息 4.方法断点 打印调试 尽管ARC已经让内存管理变得简单、省时和高效,但是在object...LLDB 绑定在 Xcode 内部,存在于主窗口底部控制台中。调试器允许你在程序运行特定时暂停它,你可以查看变量值,执行自定指令,并且按照你所认为合适步骤来操作程序进展。...在 LLDB ,你可以使用 process continue 命令来达到同样效果,它别名为 continue,或者也可以缩写为 c。...如果你确实想跳进一个函数调用来调试或者检查程序执行情况,那就用第三个按钮,step in,或者在LLDB中使用 thread step in,step,或者 s 命令。...,打开方式如下图: leaks内存泄漏检查工具 运行后查看 视图调试 启用视图调试:运行app过程,按下底部Debug View Hierarchy 按钮,或者从菜单中选择Debug > View

2.2K50

添加多个屏幕-创建格线布局

下载多个屏幕 要学习本教程,您需要Xcode 10。您可以下载Final Xcode项目,以帮助您与自己进度进行比较。 查看控制器 在主故事板,让我们构建我们集合视图。...Collection View 从对象库拖放Collection View并将其放在UIView。(不要与Collection View Controller混淆)。...文本是iPhone X并将底部约束为0并将容器水平中心约束。在“ 属性”检查,将“滚动方向”更改为“ 水平”并取消选中“ 显示”指示器。...我们遇到问题是按钮位于cell,但操作发生在DialogCollectionView。我们必须设立委托。委托将允许我们向View Controller发送消息。...使用segue名称声明一个if语句。这样,您确定在调用此segue时,我们将执行操作。将委托设置为self。我们需要使用委托来指定我们正在调用,否则,View Controller不知道。

2.9K40

iOS开发学习笔记:基础篇

像所有的IDE工具一样,我们应当花一些时间来了解自己工具,可以通过帮助或者其他一些途径。本文就不再涉及Xcode使用了。 ? 因为我们工程是基于模板创建,所以基本app环境已经设置好了。...当应用启动时候,application object 会调用app delegate定义方法,来完成特定任务。app delegate接口文件,仅定义了一个UIWindow属性。 ?...然后打开Object Library,找到View Controller,拖拽到Storyboard中就可以了。...可以看到View Controller左侧有一个箭头,这个表示当前Scene是App初始化界面,这个时候我们可以运行程序,在模拟器中看到这个空白界面,表明我们所有的配置都是成功。...接下来,我们就可以选择把Label、Input等各种控件拖到View Controller上来为自己应用进行布局了,还可以调整字体大小、颜色等等选项,初级App创建就这样完成了。

44920

iOS各种调试技巧豪华套餐

某个constraint或者view嵌套逻辑又或者团队协作Git冲突等等问题,导致io -v什么错误,这种情况去检查视图文件,可能xcode崩溃打不开那个xib或者storyboard,你直接使用文本工具打开这个...抄袭自《View Debugging in Xcode 6》 苹果在Xcode 6做了不少明显改善和优化,视图调试就是其中之一。...Object 和 Size检查器包括大量有用信息。过去开发者需要依赖日志语句或者断点来检查视图配置。...打开Main.storyboard 并选中Second View Controller Scene。...在左侧文档概览面板,展开Second View Controller视图对象以查看子视图排序。 Xcode在文档概览按照递升顺序堆叠视图,换句话说,列表顶层视图是视图层次基础。

1.4K20

iOS各种调试技巧豪华套餐

某个constraint或者view嵌套逻辑又或者团队协作Git冲突等等问题,导致io -v什么错误,这种情况去检查视图文件,可能xcode崩溃打不开那个xib或者storyboard,你直接使用文本工具打开这个...抄袭自《View Debugging in Xcode 6》 苹果在Xcode 6做了不少明显改善和优化,视图调试就是其中之一。...Object 和 Size检查器包括大量有用信息。过去开发者需要依赖日志语句或者断点来检查视图配置。...打开Main.storyboard 并选中Second View Controller Scene。...在左侧文档概览面板,展开Second View Controller视图对象以查看子视图排序。 Xcode在文档概览按照递升顺序堆叠视图,换句话说,列表顶层视图是视图层次基础。

1.9K90

一步一步,开始上手Mac 开发(一)

创建后界面 项目就绪,现在你已经拥有一个具有空窗口Mac Application了,点击运行,Xcode将开始编译这个App,当Xcode编译完成后,你就可以看到这个App主窗口了(尽管它上面空空也...下面我们要使用窗口(window)来做写练习,显示一些信息,正如iOS开发一样,我们接下来创建一个View Controller,在这个view,我们可以设置appUI。...为了使用view Controller, 就要让App Delegate 知道它存在,因此你需要做第一步就是在AppDelegate.m中导入view controller头文件 1.10 在AppDelegate.m...1.11 创建view controller 并添加view到window ? 添加controllerview 到window 上面的代码做了三个操作: 1....使用initWithNibName:方法从nib(就是我们创建控制器时Xib)文件创建了一个新view Controller。 2.

4K40

使用SWRevealViewController实现侧滑菜单

Header;苹果官方推荐通过header file文件来让Swift项目使用OC 1.3 然后xcode就会创建一个 项目名-Bridging-Header.h文件,打开该文件,输入: #import...2.使用SWRevealViewController (storyboard方式) 2.1 拖拽一个新View Controller到面板上,并设置class 为SWRevealViewController...2.2 创建菜单 View Controller,这里可以为任何类型, 2.2.1 创建完成后,左键点击SWRevealViewControllerView Controller并按住control...不放, 2.2.2 拖动到该菜单ViewController,松开鼠标 会出现一个选择面板 2.2.3 选择 reveal view controller set controller 2.2.4...点击两个ViewController 之间链接线,在属性面板设置identifier 为sw_rear(不可为其他字符) 2.3 链接要显示侧滑菜单ViewController ; 2.2.1

99020

Core Data 基础

Core Data Core Data 不仅是一个加载、保存数据框架,还可以: 实体与 SQLite Table 对应 无需编写任何 SQL 语句 通过谓词指定查询条件 Core Data 是一套非常成熟框架...里内容,重新add;勾选Is initial View Controller (3)拖控件1、2至导航栏 (4)将item样式修改为Add (5)设置cell重用ID (6)将视图控制器做关联...(局限于cc老师Xcode。用同事电脑操作没有相关问题) 解决方案: 1.使用xcode7.1创建项目,生成CoreData模型以及文件后,再使用Xcode8.3打开项目,编译通过。...里内容,重新add;勾选Is initial View Controller (3)拖控件1、2至导航栏 (4)将item样式修改为Add (5)设置cell重用ID (6)将视图控制器做关联...(局限于cc老师Xcode。用同事电脑操作没有相关问题) 解决方案: 1.使用xcode7.1创建项目,生成CoreData模型以及文件后,再使用Xcode8.3打开项目,编译通过。

95130

iOS常见问题总结(二)

= UITableViewCellSelectionStyleNone; 2)点击UITableCell时,Cell背景颜色不变,但是上面自定义控件:UILabel、UIImageView会变颜色...设置UILabel或UIImageViewHighlighted 然后 在cellForRowAtIndexPath:方法写上 UIView *view_bg = [[[UIView alloc...= view_bg; 3)点击cell行时,背景颜色一闪而过,在didSelectRowAtIndexPath:方法写上 [tableView deselectRowAtIndexPath:indexPath...animated:NO]; 3.xcode6在storyboard调整控制器大小 在Xcode5上做以上操作没有问题,这次是要在Xcode6上实现之,特记录以备用.首先新建一个storyboard...文件.取名Custom.storyboard.拖动菜单添加一个TabBarComtroller.由于XCode6使用了Use Size Classes功能.所有拖出来Controller都是600x800

82420

Xcode Debug 大全

前言 BUG,简单来说就是程序运行结果与预期不同,下面来说说XcodeDEBUG方法 参考博文 断点调试 普通断点 全局断点 条件断点 1.普通断点 看图 65e4f1e6gw1f8rti38wlxj20ke0d3n0h.jpg...LLDB 绑定在 Xcode 内部,存在于主窗口底部控制台中。调试器允许你在程序运行特定时暂停它,你可以查看变量值,执行自定指令,并且按照你所认为合适步骤来操作程序进展。...在 LLDB ,你可以使用 process continue 命令来达到同样效果,它别名为 continue,或者也可以缩写为 c。...如果你确实想跳进一个函数调用来调试或者检查程序执行情况,那就用第三个按钮,step in,或者在LLDB中使用 thread step in,step,或者 s 命令。...运行后查看 006y8lVagw1f8vebiu6r5j30se0kdqcr.jpg 视图调试 启用视图调试:运行app过程,按下底部Debug View Hierarchy 按钮,或者从菜单中选择

1.2K21
领券