按钮文本未显示且 xcode 崩溃

Posted

技术标签:

【中文标题】按钮文本未显示且 xcode 崩溃【英文标题】:Button text not showing and xcode crashing 【发布时间】:2013-01-13 13:41:43 【问题描述】:

我刚开始学习ios开发。我花了几天时间试图解决这个问题,但我一无所获。希望有人可以提供帮助。

我正在为 iPhone 开发一个计算器应用程序(只是为了练习)。我创建了一个按钮网格,但是当我开始创建最后一行时,xCode 在我创建或移动每个按钮后不断崩溃。我最终创建了布局,但是当我运行应用程序时,按钮文本不会显示底行(在 IOS 模拟器或我的 iPhone 上)的任何按钮:

             +----+ +----+ +----+ +----+ +----+
             | 7  | | 8  | | 9  | | +  | | -  |
             |    | |    | |    | |    | |    |
             +----+ +----+ +----+ +----+ +----+

             +----+ +----+ +----+ +----+ +----+
             | 4  | | 5  | | 6  | | /  | | *  |
             |    | |    | |    | |    | |    |
             +----+ +----+ +----+ +----+ +----+

             +----+ +----+ +----+ +----+ +----+
             | 1  | | 2  | | 3  | |    | | AC |
             |    | |    | |    | |    | |    |
             +----+ +----+ +----+ |    | +----+
                                  | =  |
             +----+ +----+ +----+ |    | +----+
             |    | |    | |    | |    | |    |
             |    | |    | |    | |    | |    |
             +----+ +----+ +----+ +----+ +----+

如果我将按钮从底行一一移动到顶行,文本会显示在它们上面,但仍然不在底行:

                    +----+ +----+        +----+
                    | .  | | +- |        | C  |
                    |    | |    |        |    |
                    +----+ +----+        +----+

             +----+ +----+ +----+ +----+ +----+
             | 7  | | 8  | | 9  | | +  | | -  |
             |    | |    | |    | |    | |    |
             +----+ +----+ +----+ +----+ +----+

             +----+ +----+ +----+ +----+ +----+
             | 4  | | 5  | | 6  | | /  | | *  |
             |    | |    | |    | |    | |    |
             +----+ +----+ +----+ +----+ +----+

             +----+ +----+ +----+ +----+ +----+
             | 1  | | 2  | | 3  | |    | | AC |
             |    | |    | |    | |    | |    |
             +----+ +----+ +----+ |    | +----+
                                  | =  |
             +----+               |    |
             |    |               |    |
             |    |               |    |
             +----+               +----+

然后,当我将最后一个按钮移到顶部时,新的底行停止显示文本:

             +----+ +----+ +----+        +----+
             | 0  | | .  | | +- |        | C  |
             |    | |    | |    |        |    |
             +----+ +----+ +----+        +----+

             +----+ +----+ +----+ +----+ +----+
             | 7  | | 8  | | 9  | | +  | | -  |
             |    | |    | |    | |    | |    |
             +----+ +----+ +----+ +----+ +----+

             +----+ +----+ +----+ +----+ +----+
             | 4  | | 5  | | 6  | | /  | | *  |
             |    | |    | |    | |    | |    |
             +----+ +----+ +----+ +----+ +----+

             +----+ +----+ +----+ +----+ +----+
             | 1  | | 2  | | 3  | |    | | AC |
             |    | |    | |    | |    | |    |
             +----+ +----+ +----+ |    | +----+
                                  |    |
                                  |    |
                                  |    |
                                  |    |
                                  +----+

然后我将等号按钮上移,新的底行无法显示文字:

                                  |    |
                                  |    |
             +----+ +----+ +----+ | =  | +----+
             | 0  | | .  | | +- | |    | | C  |
             |    | |    | |    | |    | |    |
             +----+ +----+ +----+ +----+ +----+

             +----+ +----+ +----+ +----+ +----+
             | 7  | | 8  | | 9  | | +  | | -  |
             |    | |    | |    | |    | |    |
             +----+ +----+ +----+ +----+ +----+

             +----+ +----+ +----+ +----+ +----+
             | 4  | | 5  | | 6  | | /  | | *  |
             |    | |    | |    | |    | |    |
             +----+ +----+ +----+ +----+ +----+

             +----+ +----+ +----+        +----+
             |    | |    | |    |        |    |
             |    | |    | |    |        |    |
             +----+ +----+ +----+        +----+

这真是令人沮丧!我在一个新的应用程序中再次开始得到同样的东西,总是没有显示的最低对齐行。如果我切换到 3.5" 视图,问题仍然存在。我尝试将按钮进一步间隔开,尝试更改所有文本参数,更改视图以禁用自动调整子视图并将模式从比例更改为适合,但这仍在发生。我找不到任何其他描述此问题的帖子,这似乎很奇怪,因为它很容易重新创建。请帮助。

【问题讨论】:

你使用自动布局选项吗? 看起来就是这样。谢谢 @DominicSander,将其发布为答案。干得好! 【参考方案1】:

我建议仅在非常特殊的情况下使用 iOS 6 的新自动布局选项。我已经非常深入地测试了这个选项并发现了很多错误,例如:

在控制台中出现指示苹果错误的消息 它会大大降低您的 UI 速度 当布局约束突然消失时 应用程序有时会崩溃并显示未记录的错误消息

目前使用自动布局非常令人沮丧。我不使用自动布局,而是使用

- (void)viewDidLayoutSubviews 

以编程方式调整我的 UI,这更容易和更快(在开发和运行时)。

【讨论】:

【参考方案2】:

您需要取消单击“Interface Builder Document”下的“使用自动布局”切换。 我遇到了同样的问题,禁用它后,按钮中的文本正确显示。

显示实用程序/文件检查器/界面构建器/使用自动布局

据我所知,这是 iOS 6.1 的一个新“功能”

【讨论】:

以上是关于按钮文本未显示且 xcode 崩溃的主要内容,如果未能解决你的问题,请参考以下文章

当我按下一个按钮时我的游戏崩溃了(以 NSException 类型的未捕获异常终止)

访问 Xcode 按钮文本但未反映背景更改 UI

Xcode 按钮图像未显示

Xcode,UITableView 上未显示按钮(基本级别)

自定义按钮在界面生成器中未正确显示

使用 Xcode 的 iOS 应用程序中未显示按钮和标签