天道酬勤,学无止境

xcode-storyboard

如何将 Xcode Storyboard 的“Simulated Metrics”工具栏连接到实际的 IBOutlet UIToolbar?(How to connect Xcode Storyboard's “Simulated Metrics” toolbar to an actual IBOutlet UIToolbar?)

问题 尝试通过 Xcode Storyboard 设计 UIToolbar 附件视图时遇到问题。 当我将一个 UIToolbar 对象拖到我的视图控制器的上边距时,该项目被添加到左窗格中,我可以将它连接到我的类的 IBOutlets。 当我运行应用程序时它显示正确。 但是,工具栏在故事板上的任何地方都不可见。 因此,我首先失去了使用 Interface Builder 的可视化编辑优势。 栏按钮项目仅在左侧边栏中可见。 通过使用视图控制器的“模拟指标”,我似乎已经解决了无法在 IB 画布中看到视图的问题。 现在我可以在故事板中看到一个工具栏。 属性检查器 > 模拟指标将“底部栏”设置为“不透明工具栏” 将条形按钮项拖到此模拟工具栏中 但是,当我运行该应用程序时,此“模拟工具栏”不可见。 我无法通过连接检查器将模拟工具栏链接到 IBOutlet 我还没有找到将“工具栏对象”(第一张图片)链接到“模拟工具栏”(第二张图片)的方法。 我的主要目标是在故事板中查看工具栏的可视化表示。 这可能吗? 回答1 模拟指标就是——模拟的。 它们可以帮助您可视化您的设计,但是如果缺少其他一些机制,工件不一定会在运行时出现。 您在故事板中创建的工具栏在运行时就在那里,但没有添加到您的视图中。 这就是为什么它出现在场景的标题中。

2021-09-21 05:13:21    分类:技术分享    ios   xcode   interface-builder   uistoryboard   xcode-storyboard

Interface Builder 文件中的未知类 FBSDKLoginButton(Unknown class FBSDKLoginButton in Interface Builder file)

问题 我的全新项目遇到了一个非常令人沮丧的构建问题。 我正在尝试集成 Facebook iOS SDK,但由于某种原因,我遇到了一些奇怪的错误。 尝试使用 FBSDKLoginKit 在故事板视图上显示FBSDKLoginButton时。 当我尝试#import <FBSDKLoginKit/FBSDKLoginKit.h>时,第一个提示有问题是这个“错误”(但是它只在编辑器中显示为错误;它仍然可以正常编译): “无法构建模块 FBSDKLoginKit。” 奇怪的是,这个“错误”在修改了一些与模块相关的构建设置后就消失了,即使我将它们设置回原始值也是如此。 同样有趣的是,如果我从我的视图控制器中明确引用FBSDKLoginButton类(例如以编程方式添加按钮),那么基于故事板的实例化工作正常。 所以我猜这一定是链接器问题或其他什么,但我承认我不是那个东西的专业人士。 Facebook SDK 文档中没有一个提到我可以找到的这个问题,这很奇怪,因为就像我说的,这是一个全新的干净项目。 回答1 我的不好,文档确实提到了这一点,并建议通过引用application didFinishLaunchingWithOptions:的FBSDKLoginButton类来解决我已经想到的问题。 (坦率地说,你在哪里引用它并不重要,所以哪里最舒服。对我来说,视图控制器更有意义。) - (BOOL

2021-09-21 01:13:58    分类:技术分享    ios   objective-c   facebook   facebook-ios-sdk   xcode-storyboard

自定义视图 (xib) 在故事板上不可见(Custom view (xib) not visible on storyboard)

问题 我有一个自定义视图xib ,其中有多个TableViews 。 我将它作为嵌套视图加载到ViewController中: ViewController |_ View |_ View (This is where I load my Custom View) 当我运行我的应用程序时,我可以在屏幕上看到空表,所以我的 xib 加载正确。 到现在为止还挺好。 我的问题是,我无法在故事板中看到我的表格。 所以我无法ctrl +drag 并继续进行。 如何在故事板视图中看到我的自定义视图? 回答1 Storyboards 只能包含 ViewControllers 和 Segues。 如果您想从 ViewController 访问您的 xib 中的某些内容以设置委托等,那么您必须通过代码来完成。 例如,当目标ViewController在 Storyboard 中而UITableView在另一个 xib 中时,您不能从 IB 中设置UITableView的委托。 回答2 例如,我们有TopView (我的 CustomView): TopView.xib , 在File's Owner 中设置 TopView 类 TopView.swift 注意:不要忘记@IBDesignable 标签。 import UIKit @IBDesignable class TopView: UIView

2021-09-18 14:22:14    分类:技术分享    ios   swift   xib   xcode-storyboard

如何使用自动布局更改uiview的高度?(How to change uiview's height using auto layout?)

问题 所以我创建了这个场景,以了解视图如何根据其内容增加高度。 但是,我仍然无法实现。 这就是我现在所拥有的: textview 根据内容增长。 然而,包含它的 uiview 正在消失。 我应该使用什么约束,以便当 uitextview 变大时,其父视图的高度也会增加? 回答1 在 UITextView 上让你取消选择这些 滚动已启用弹跳水平弹跳垂直弹跳显示水平指示器显示垂直指示器 现在像这样更改您的自动布局约束。 回答2 首先从一切中清除您的所有限制,以便我们有一个新的石板。 第 1 步:构建您的视图层次结构。 在这个例子中,我们想要这样的东西: 视图控制器的视图,我们称之为parentView有一个子视图,我们称之为redView 。 这个redView有一个孩子,一个 Text Field,我们称之为textField 。 层次结构如下所示: 第 2 步:设置特定于任何单个视图的任何约束。 在这种情况下,我们可能只想在我们的文本视图上设置宽度约束。 现在,我将设置宽度为 200pts。 第3步:设置之间的约束textView和其母公司, redView 。 假设我们想要一个 10pt 的边框。 让我们添加这些约束: 一旦我们添加了这些约束,我们就会收到一些自动布局警告和错误。 对于初学者来说,因为我为 with 和空间添加到 superview 的约束与实际大小不匹配

2021-09-16 00:26:42    分类:技术分享    ios   uiview   autolayout   uitextview   xcode-storyboard

自动布局的 Xcode 故事板问题不允许我移动对象 origin.y 值(Xcode storyboard issue with auto layout not allowing me to move an objects origin.y value)

问题 在我的故事板中,我刚刚实现了尺寸类,它为我的元素添加了完美的约束,但是当尝试修改元素 y 位置所在的位置以在键盘显示事件上将其向上移动时,使其看起来像这样附加到键盘上时,元素由于限制,根本不要移动。 我尝试删除约束,但没有帮助。 从我读到的我对它的理解来看,如果没有约束,那么在构建应用程序时会生成一些约束。 我以前如何以编程方式移动元素可以在这里看到: i.imgur.com/uHfgEKl.png 。 我在问如何在启用大小类的情况下将故事板上的元素 y 位置与键盘的大小一起向上移动? 如果有人知道怎么做,请告诉我。 对不起,最后一个链接没有超链接,我没有声誉,因为我是堆栈溢出的新手。 回答1 试试这个: 为您的项目添加垂直空间约束,并将其固定在距屏幕底部恒定距离的位置。 在Interface Builder 中,将您的项目放在靠近屏幕底部的位置,选择它,然后选择 Auto Layout Pin 图标|-[]-| 并打开底部支柱。 将常量设置为您想要的初始值。 单击添加 1 约束。 将@IBOutlet添加到代码中的约束。 @IBOutlet weak var verticalSpaceConstraint: NSLayoutConstraint! 您可以通过Control从文档布局视图中的约束拖动到您的 ViewController 代码来执行此操作。

2021-09-15 21:19:43    分类:技术分享    ios   swift   autolayout   constraints   xcode-storyboard

使用启动屏幕 (.xib) 停止缩放(Using a launch screen (.xib) stops scaling)

问题 我的理解是 iOS 8 的应用程序应该有一个故事板文件作为启动屏幕而不是图像。 我已经创建了一个非常简单的启动屏幕文件,它具有任意宽度和任意高度,并且有一个纯文本标签“占位符”,并将其设置为我的启动屏幕。 但是,当我尝试在 iPhone 6 和 6 Plus 模拟器上运行我的应用程序时,背景周围出现黑条,并且主菜单上的按钮不合适。 问题似乎不存在于 5s 或 iPad。 不过,我的大部分资产都没有针对 6 和 6 Plus 进行优化,因为它们是在发布之前创建的。 这就是发生这种情况的原因吗? 或者是别的什么? 提前致谢。 编辑:显然,放入启动屏幕会阻止应用程序自动缩放。 有没有办法同时拥有启动屏幕并保持应用程序缩放? 还是我需要制作新资产? 回答1 这是一个老问题,我最终使用了启动图像而不是启动屏幕,但您可能可以通过使用约束来解决这个问题。 如果您在视图中的项目上设置顶部、底部、前导和/或尾随约束,它将自行缩放以适应这些约束(如果可能)。 对于文本,它具有 autoshrink 属性,您可以将其更改为最小字体比例(而不是固定字体大小),但我不确定如何放大文本。 自动布局文档在这里。 回答2 要从 xib 文件创建启动屏幕,首先从“用户界面”下创建一个新文件,然后选择名为“启动屏幕”的选项 使用自动布局,设计应用程序的第一个视图,使其缩放以适应应用程序支持的所有分辨率。

2021-09-14 16:31:32    分类:技术分享    ios   iphone   xcode   ios8   xcode-storyboard

如何从 MainStoryboard 为 UIViewController 分配标识符?(How to assign an identifier to a UIViewController from the MainStoryboard?)

问题 之前我使用 initWithNibName 分配和初始化视图控制器,其中 Nib 名称的参数只是 xib/nib 文件的名称。 但是,随着 Xcode/IB 现在与 Storyboards 一起工作的方式,我不确定我需要做什么来用它各自的 xib/nib 初始化视图控制器类。 在我的故事板中,我创建了视图控制器并引用它(从另一个视图控制器)并将其指定为 Popover 类型。 任何想法如何实现? 谢谢。 * 更新 * 苹果文档说 要在故事板中识别特定的视图控制器或转场,请使用 Interface Builder 为其分配一个唯一标识它的标识符字符串。 但我不知道如何通过 IB 分配一个唯一的 id。 这该怎么做? 回答1 XCode 4.4 and earlier: Identifier; XCode 4.5: Storyboard ID STORYBOARD - 不包含带有标识符的视图控制器

2021-09-11 06:10:49    分类:技术分享    uiviewcontroller   uipopovercontroller   xib   nib   xcode-storyboard

How to start from a non-initial NavigationController scene

I'm trying to mimic the navigation logic in Apple default app "Photos". Below is the illustration of the app navigation logic. When you first start the app, you land on "Moments" view which is at the third highest hierarchy level in the app. It's quite interesting because the whole "Photos" tab seems like to be embedded into a single NavigationController. However, if all scenes are embedded into a single NavigationController how do you start from a non-initial scene? Here's my hackish implementation without embedding scenes into any NavigationController(all the segues are presented as show: It

2021-09-09 02:13:54    分类:问答    ios   swift   uinavigationcontroller   segue   xcode-storyboard

How to assign an identifier to a UIViewController from the MainStoryboard?

Before I used to allocate and initialize a view controller using initWithNibName, where the parameter for the Nib name is simply the name of the xib/nib file. However, with the way Xcode/IB works with Storyboards now, I'm not sure what I need to do to initialize a view controller class with it's respective xib/nib. In my storyboard i have created the view controller and referenced it (from another view controller) and specified it as a Popover type. Any ideas how this is accomplished? Thanks. * Update * Apple docs says To identify a specific view controller or segue inside a storyboard, use

2021-09-06 21:36:58    分类:问答    uiviewcontroller   uipopovercontroller   xib   nib   xcode-storyboard

Could not cast value of type 'UINavigationController' to 'jacrs_ios.TopViewController'

I'm new to Swift and I was trying to make a side menu base on the tutorial that I was following but I ran across with this error. "Could not cast value of type 'UINavigationController' (0x1026054a8) to 'jacrs_ios.TopViewController' (0x1009ac510)." I noticed that there were same problems already existing here but I still dont understand. I'm gonna included the current storyboard in case I did something wrong. Thanks. ViewController Error override func prepare(for segue: UIStoryboardSegue, sender: Any?) { let topViewController = segue.destination as! TopViewController topViewController

2021-09-06 07:30:52    分类:问答    ios   swift   uinavigationcontroller   xcode-storyboard