我想自定义一个五星级的UIView,也希望它能在故事板上渲染。所以我决定使用@IBDesignable和@IBInspectable.The,下面是我的代码。
import UIKit
@IBDesignable
class RatingView: UIView {
override init(frame: CGRect) {
super.init(frame: frame)
setUpView()
}
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setUpView()
}
func setUpView() {
let imageView = UIImageView(frame:CGRectMake(0, 0, 50,50))
imageView.image = UIImage(named: "star")
addSubview(imageView)
}
}然后在我的故事板中,我将一个UIView拉到我的画布中,并将自定义类设置为我的自定义视图,因为RatingView.The编译器开始编译故事板文件,我只需等待自定义视图在canvas.Here中呈现。

状态是“最新的”,但视图没有被renderd.The视图只是保持白色,我想看到的是我添加到父视图中的图像。当我使用UILabel而不是UIImageView,标签在画布中渲染,而不是UIImageView中,我如何在画布中渲染我可爱的星形图像。(Images.xcassets有star.png文件)

使用UILabel而不是UIImageView
func setUpView() {
let label = UILabel(frame: CGRectMake(0, 0, 50, 50))
label.text = "text"
addSubview(label)
}结果:

发布于 2015-05-14 22:44:05
我也想做同样的事情。您需要将视图放在一个框架中。正如@Benson Tommy在评论中所说的那样,看看WWDC 2014 session 411。
以下是该会话的链接:https://developer.apple.com/videos/wwdc/2014/#411
以下是会议记录的链接:http://asciiwwdc.com/2014/sessions/411
https://stackoverflow.com/questions/26779073
复制相似问题