由于无法使用表情符号或unicode提供半星图像,因此我决定按以下方式下载png格式的全星和半星图像。
但是,我坚持要用这两个图像来提高速度。
我想显示3.5星。有可能还是有简单的方法?
我可以将5个图像视图彼此相邻并根据等级设置每个图像视图,但这听起来不是有效的处理方式。
答案 0 :(得分:1)
我正在手机上写这篇文章,所以这可能不是最好的方法,但是您可以改进它。
let stars = 3.5
let stackView = UIStackView()
//setup horizontal stackView
let oneStarImage = UIImage(named: "oneStar")
let halfStarImage = UIImage(named: "halfStar")
func addStarImages() {
var value = stars
while true {
value -= 1
if value >= 0 {
print("Add 1 star")
let imageView = UIImageView()
imageView.image = oneStarImage
stackView.addArrangedSubview(imageView)
} else if value == -0.5 {
print("Add half a star")
let imageView = UIImageView()
imageView.image = halfStarImage
stackView.addArrangedSubview(imageView)
break
}
else {
break
}
}
}
// Add 1 star
// Add 1 star
// Add 1 star
// Add half a star