小编kaz*_*ton的帖子

IBDesignable类绘图UIImage不显示在情节提要中

我已经在XCode中设计了一个自定义控制器,该控制器根据其所处的状态绘制自身。在一种状态下,该控制器通过myImage?.draw(in: rect)在覆盖的draw(_ rect: CGRect)函数中调用来显示图像。

图像正确显示在应用程序中,但未显示在情节提要中。为了说明这一点,我在同一绘制函数内添加了一个Bezier环,该环在应用程序和情节提要中均显示:

应用中显示的控制器

情节提要中显示的控制器

在研究了问题之后,我相信这可能与图像是可选图像有关。但是,将其显式展开(即,调用myImage!.draw(in: rect)会导致情节提要自动布局崩溃:

error: IB Designables: Failed to render and update auto layout status for SermonViewController (1zk-bD-8it): The agent crashed
Run Code Online (Sandbox Code Playgroud)

我已经删除了该类的完整实现:

import UIKit

@IBDesignable class DownloadIndicatorControl: UIView {

    let requestDownloadImage = UIImage(named: "requestDownloadImage")
    let lineWidth: CGFloat = 3.0
    override func draw(_ rect: CGRect) {

        // Draw Image
        requestDownloadImage?.draw(in: rect)

        // Draw ring around image
        let radius: CGFloat = fmin(self.bounds.width, self.bounds.height) / 2 - lineWidth / 2
        let …
Run Code Online (Sandbox Code Playgroud)

xcode cocoa storyboard swift

5
推荐指数
1
解决办法
540
查看次数

标签 统计

cocoa ×1

storyboard ×1

swift ×1

xcode ×1