前言 IB_DESIGNABLE / IBInspectable 这两个关键字是在WWDC 2014年"What's New in Interface Builder"这个Session里面,用Swift...其大意就是说,“所见即所得”的思想,我们可以将自定义的代码实时渲染到Interface Builder中。...我们通过@IBDesignable告诉Interface Builder这个类可以实时渲染到界面中,无论我们drawRect里面多么复杂,自定义有多复杂,Xib / Storyboard都可以把它编译出来...Demo地址 如果想看Session的话,可以看这两个WWDC 2014的链接 whats_new_in_xcode_6 whats_new_in_interface_builder 苹果官方文档 今天来分享一下我使用这两个关键字的时候遇到的一些问题和解决过程...class还是写自己本身,用那个类来加载我们这个View,这样就可以不崩溃,不会无限递归了。但是问题又来了,我们无法在Xib/Storyboard上实时预览到我们的View了。
从本质上讲,这意味着您的应用已崩溃… 这是Xcode中的样子: 在屏幕截图中,您会看到一些东西: 在左侧,您可以看到应用崩溃时运行的线程列表。您会看到导致崩溃的线程是主线程或“线程1”。...Interface Builder中的UI元素之间建立连接 有一次您更改了初始插座属性的名称,并且您的应用因SIGABRT错误而开始崩溃 当您使用Interface Builder创建视图控制器时,您的应用程序运行时...检查堆栈跟踪 在许多情况下,Xcode不会向您显示SIGABRT崩溃的任何有用的错误消息。发生这种情况时,了解一些调试命令很有用,例如bt。 Xcode具有称为LLDB的集成调试环境。...这是您的应用程序运行时在Xcode底部,控制台或调试输出区域中看到的内容。您经常在这里看到调试消息,但是您知道也可以使用它来输入命令吗? 下次您的应用崩溃时,请尝试输入helpLLDB。...当应用崩溃时,bt可以告诉我们哪一行代码导致了错误。 您可以在堆栈跟踪中发现以下信息吗?
第二步:Mac开发环境Xcode和Monodevelop的安装,当然在安装mac系统时,如果选择IT用户,很多开发系统也就自动安装好了,比如jdk、maven、svn,python的环境, 然而不是所有的软件开发环境都会安装好...具体参考Interface Builder User Guide MainWindow.xib - 主窗口的界面文件,具体参考Interface Builder User Guide 而MainWindow.xib.designer.cs...使用Interface Builder进行界面的布局,在MonoDevelop的项目上双击MainWindow.xib文件,便会打开Interface Builder。...:通过Finder找到Developer\Applications\Interface Builder 先运行Interface Builder,就可以了。...下一步是在Interface builder建立一个按钮点击事件。 到Library的窗口。确定它仍然显示MainWindowController。选取Action。
Xcode4.5中,工程模板会默认为App程序创建启动用的MainView,配套一个MainView.xib文件,其中默认会有一个Window对象。...在最近一个项目中,笔者用Xcode 5创建了一个工程,但因为对Storyboard不熟,所以没敢用默认的Main.storyborad作为启动对象,而想自定义启动过程。...结果却是在main方法中即崩溃了。...对比此项目与系统模板创建的项目,发现是在MyMainViewController中缺少了与AppDelegate对象的关联,于是在MyMainViewController.xib视图中添加了一个Object...其实,nib文件也是参照项目中Resources组中MainWindow.xib文件,我们双击该文件,启动Interface Builder后可以看到下面的图示: Interface Builder 中有以下
绑定的类名改变时,对应的Storyboard上未做处理,导致运行时崩溃,崩溃内容看不懂!...Interface Builder file就是指通过Storyboard或者Xib构建视图或者控制器,但找不到名为HomeController的控制器,看到这里就应该明白,我们某个Storyboard...而且重构代码时利用Xcode重构功能的话,连问题都不会出现 StoryBoard 和 Xib 降低执行效率?...我想,这种言论可能是因为不太熟悉Interface Builder的功能和操作造成的,仅仅实验了几次不得其门而入就放弃了。...而使用StoryBoard 或 Xib就不同了,缺少约束或者约束冲突直接就有错误提示,适配不同设备可以直接在Interface Builder上切换测试,效率不知高了多少倍,准确性也高了很多 如果需要详细了解在
对于按钮的背景图片,要确保实际按钮的部分(不包括阴影或外发光等效果的区域)处于背景图片的正中,因为我们在Xcode的Interface Builder当中很难对背景图片及前景文字之间的位置关系进行精密的调整...xib文件:在Interface Builder中进行界面可视化编辑的XML文件,出于历史原因,通常也被称为NIB文件。中间编辑区(Editor)所呈现的内容会根据当前正在执行的任务而发生变化。...接下来单击Portfolio路径中的MainWindow.xib文件,这时编辑区所呈现的就是用于编辑用户界面的Interface Builder,如下图所示。我们通常会在这里对应用界面做最基本的构建。...在Xcode左侧的导航栏中点击MainWindow.xib,进入Interface Builder编辑模式。...总结本文确实涵盖了不少方面的内容,从Xcode的界面介绍、基本操作,到在Interface Builder中创建界面,以及实际代码的编写。
1、Unknown class xxClass in Interface Builder file. 这个问题出现在使用Xib时设置自定义类名的时候。...在参考OC的写法创建了自定义的类,而且也在xib中使用时设置了控件的class为自定义的类名之后,运行Xcode会在控制台提示错误是Unknown class xxClass in Interface...Builder file....解决:在使用的xib文件的控制面板位置,在设置自定义类的类名的时候,将Module修改为当前工程的Module,如图: ?
, 选择 Move to Trash 选项, 直接删除; -- Remove Reference 选项 : 在文件系统保留该文件, 但是不编译该文件; -- 修改配置 : 点击项目名称, 选择 General...: nib 后缀是传统格式, xib 后缀是新格式; -- 默认模板 : Xcode 默认使用 xib 作为默认格式; xib 与 nib 主要区别 : -- 文件类型 : xib 是文本文件, nib...是二进制文件, Xcode 编译项目时 会将 xib 文件转为 nib 文件; -- nib 文件 : Interface Builder 把窗口, 菜单栏 以及 各种 UI 组件都冻结在 nib...文件 或 .storyboard 文件); -- 连接方法 : 在界面设计文件对应的 UIViewController 类中, 定义一个 IBOutlet 属性, 该属性 与 Interface Builder...Interface Builder 中配置视图之间的切换关系; -- 图示 : (3) 工具图标 界面设计文件的 工具图标 : -- 缩小 : 多个视图控制器在同一个窗口, 缩小界面可以同时查看所有的
十三、Interface Builder 现在可以在大纲视图中手动重新排序 Storyboard 场景; macOS 的 Storyboard 和 XIB 使用 UINIbEncoder 进行编译,以减少文件大小并提高运行时性能...的预览窗格现在显示画布样式的边; 现在可以在 Interface Builder 场景中预览以下辅助功能设置:动态类型、粗体文本、按钮形状、开/关标签、增加对比度和降低透明度; 现在可以启用 UILabel...Mac Catalyst 构建的应用程序指定 UIControl 对象上的工具提示; Interface Builder 现在支持 UIBarButtonItem.menu; Interface Builder...十七、Organizer Xcode 现在可以近乎实时地提供崩溃报告,数据保留时间更长; Xcode 现在提供具有更多过滤功能和更多统计信息的崩溃报告; 现在可以通过 URL 共享崩溃报告; Xcode...iOS 设备上的 UI 测试中合成指针交互; Xcode 现在为在运行测试时崩溃的进程收集代码覆盖率数据; 性能 XCTests 现在支持测量应用程序启动时的 CPU 使用率 (XCTCPUMetric
image Interface Builder Interface Builder 设计画布完全集成在 Xcode IDE 中,可以轻松呈现完整用户界面的原型,而无需编写任何代码。...image 内建 Interface Builder ---- 借助 Xcode 内置的 Interface Builder 编辑器,您无需编写任何代码,即可轻松设计完整的用户界面。...或 .xib 文件时打开 Assistant,可以迅速将 UI 控件与实现其行为的代码关联起来。...例如,当显示不同语言时,可以让按钮优先保持特定大小或扩展以容纳更大的文本。 Interface Builder 可自动为您创建所有限制条件,确保提供一套兼容的规则。...Zombie 检测 当 app 尝试访问不再可用的内存时,您可以在 Instruments 内捕获难以发现的错误和崩溃。
nib Next Interface Builder Interface Builder 的优点 开发和维护效率高 减少大量的 UI 代码和“胶水代码” 适配变得十分简单 IB 也可以做一些非 UI 的事情...不利于代码的封闭和工程架构的组织 Interface Builder 学习的特点 简单,容易入门 容易犯错误 有很多的“坑”,需要积累属于自己的经验 Interface Builder 的发展 xib...mvc 理解 File's Owner 关联 xib 文件与 UIViewController 子类的源文件 自定义一个 VC 的 View 的两种方法 在 IB 文件中选中 VC 所在的 View,在...第4章 在 Interface Builder 中使用 Auto Layout ---- 在 IB 中使用 Auto Layout 的优缺点 设置约束十分简单 如果约束不恰当,IB 提供很好的实时反馈...} } } 第7章 在 Interface Builder 开发中的技巧和 Bug ---- 调整 View 的尺寸,使它与显示内容的尺寸相适应 comment + = 查看各个 View 之间的距离
概述 Xcode 8正式版在9月13日已经推送给开发者下载,下载之后就出现了很多编译错误,之前的插件也不能用了,但是发现Xcode8把好多不错的插件功能整合到自身了,感觉这点也挺不错。...Xcode 8适配 在Xcode8之前,创建一个XIB或SB文件,都是一个600*600的方块XIB文件。在Xcode8之后,创建的XIB文件默认是6s尺寸的大小。...但是这样有个问题,如果Xcode8打开过这个XIB文件,并选择Choose Device之后。...其他的Xcode8以下版本的编译器,将无法再打开这个文件,会报以下错误: The document “ViewController.xib” requires Xcode 8.0 or later....中,添加新的字段获取权限,否则在iOS10上运行会导致崩溃。
问题: 今天有一个页面有很多uibutton,所以就用xib搭了界面,然后问题来了,如何在xib下修改控件的边框颜色和大小、圆角?...colorWithCGColor:self.borderColor]; } @end 自定义的时候要注意borderIBColor属性的setter和getter方法的内容不要错了,然后可以完美运行 扩展:在swift...builder?...Expanding User-Defined Runtime Attributes in Xcode with Objective-C 这里有比较有意思的扩展哦,有兴趣的可以看看 Xcode6快捷键...、小技巧与xib圆角设置
虽然Storyboards和XIB很有用,但并不是所有人都喜欢。比如在使用源码控制时就很麻烦,会导致代码和可视化布局之间移动变得非常困难;使用动作和outlets时过于依赖flaky系统的连接。...用一个新的声明式UI结构,定义了的布局的外观和工作方式 更新UI预览会自动生成新的Swift代码,反之,更改Swift代码也会更新UI预览 Swift中的任何绑定例如有效的outlets和操作,都会在编译时进行检查...让Xcode for iPad更上一层楼 开发者对Interface Builder的抱怨不是一天两天了,它大大增加了分解视图块以及从视图控制器(view controller)使用视图的工作量,导致出现体积臃肿的视图控制器...此前,无论什么尺寸屏幕的iPad,总是很难将Interface Builder的大小放到iOS上。而拥有更简单,更快速,更安全的SwiftUI为开发人员实现真正的平台独立性迈出了一大步。...尽可能的依赖工具 通过消除源码控制的痛点、消除对UIKit的严重依赖、消除Interface Builder可能遇到的一些连接混淆,苹果希望开发者更多的使用Swift,尽可能的依赖工具而不是纠结于一些不必要的事情
Snip20160929_1.png “undefined symbol: __gxx_personality_v0” 是比较常见的一种报错,是因为在linux下编译C++程序,如果使用gcc命令进行编译...3.Xcode 8 项目在 Xcode7上的模拟器运行时出现如下提示: ? Snip20161010_2.png 解决方法:在 Main.storyboard 的右边的编辑区设置如下即可: ?...Snip20161011_3.png 4.Xcode 8适配 XIB和Storeboard适配 在Xcode8之前,创建一个XIB或SB文件,都是一个600*600的方块XIB文件。...在Xcode8之后,创建的XIB文件默认是6s尺寸的大小。 但是Xcode8打开之前旧项目的XIB或SB文件时,会弹出下面的弹框, 这时候一般直接选择Choose Device即可。 ?...其他的Xcode8以下版本的编译器,将无法再打开这个文件,会报以下错误: The document “ViewController.xib” requires Xcode 8.0 or later.
用Interface Builder编辑的文件在iOS5之前是一个“.xib”文件,从IOS5开始进行了改进,使用“.storyboard”文件进行设计。...我们可以在项目属性中通过修改“Main Interface”属性来修改主视图控制器。 这里我们不妨从Xcode右侧工具栏Object Library中拖放一些组件在上面简单完成一个登录布局。...IBAction:其实就是void,只是当你定义为IBAction在Interface Builder中可以关联到某个控件的事件方法(后面的关联操作将会看到,而且我们在代码中也可以看到代码前面多了空心圆点....h文件,同时打开Interface Builder,按住ctrl键拖拽控件到代码中相应的位置进行关联),关联后属性或方法前的空心圆变成实心表示已经关联到具体控件(注意:事实上,从控件拖拽到代码时如果代码中没有定义对应的属性和方法...Interface Builder会自动生成代码)。
注意:工程如果有桥接文件,是不能拷贝过来的,否则编译不通过。 原因见步骤五。...修改办法就是:在代码的引用处添加前缀。 定义前缀: ? image 如图: resourceRooturl是xib、storyboard文件前缀路径。...,是禁止桥接文件存在的,即使你添加了,也会永远编译不过,打包不了。...Unknown class in Interface Builder file .... image not found 等 解决办法: 参考我这篇博文 =======================...===========报错4:================================== load storyboard 或xib 崩溃 解决办法: 是因为打包的地方引用文件路径没有改动,
Xcode 5 中 xib 文件格式的调整 Xcode 升级到 5 之后, iOS 的 xib 文件发生了变化, 导致 Xamarin Studio 中自带的 iOS ViewController 模板出错了...Xcode 的界面设计器中看起来是这样子的: ?...在界面设计器中, 看到第第一个对象是 View 。 上面的 xib 文件在 MonoTouch 下运行没有任何问题。 在 Xcode 更新到 5.x 之后, 默认的 xib 文件如下: 编译目标为 iOS7 是还能显示额外的布局指南 (Layout Guide) : ? 还有一些 ViewController 额外的属性: ?...上面的异常时说找不到参数类型为 IntPtr 的构造函数, 我们添加一个接受 IntPtr 类型的构造函数, 如下所示: public NewViewController(IntPtr handle)
用storyboard和xib进行view的生成,这种方式运行效率是会降低,但现在的手机配置基本可以忽略这点弊端,官方也推荐这种方式 常用技巧 选中View 当你想直接在view中选择自己想要的元素时...添加AutoLayout边距约束时如何不使用margin约束 通常我习惯于在xib或者StoryBoard中用右键drag拖线的方式设置autolayout约束,但是默认的autolayout边距约束可能是带...而经过我的测试发现在Xcode6.1和Xcode6.4下这个margin可能表现行为还不一样。 为了避免麻烦,还是不用margin约束比较好,如何在添加约束时不使用margin约束呢?...快速在文件树中切换到当前文件 在Xcode中经常会遇到跳转比较多的情形,有时候若跳转到某个m文件,然后又想在左边的文件目录中切换选中文件为当前打开的文件,可以用Cmd + Shift + J来操作 显示或隐藏...添加第三方字体 把字体ttf文件像普通文件加入到项目中,在xib或storyboard中就可以直接使用新字体了 属性设置 但是很多属性的设置 在xib中是不能完全自定义的,作为一个喜欢用xib这种方式的码客来说
8 查看interface 按住control + command + ↑,会生成当前文件的 interface,显示当前文件的属性、函数签名和注释。...11 使用minimap 在浏览长代码时,可以通过 Editor —> Minimap 调出minimap,方便查看代码。...12 粘贴代码格式化 有时候从别的地方粘贴代码到项目中时缩进不对,可以使用control + I进行格式化。 Xcode 14 补齐右侧}时,会自动格式化{}包含的代码块。...14 查看项目编译时间 在终端中输入defaults write com.apple.dt.Xcode ShowBuildOperationDuration -bool YES 15 UIView拖拽...在 storyboard 或者 xib 中将一个 UIView 拖拽到另一个 UIView 时会默认成为其子 view,如果按住command进行拖拽即可成为平级关系。
领取专属 10元无门槛券
手把手带您无忧上云