[英]How do I clear imageView of UIButton in swift?
我有一個名為 menuButton 的 UIButton,它有一個 customClass,它可以在其中設置多個圖像,當我們單擊它時,我有一個下拉菜單。 因此,根據選擇的菜單,我想用 menuButton 來更改圖像。
這是我的代碼:
public enum MenuItems: String {
case menu1 = "menu1"
case menu2 = "menu2"
case menu3 = "menu3"
}
func layoutView() {
menuButton.setImages(normalImage: "triangleImage",
image: "menu1",
selectedImage: "closeImage")
menuButton.addTarget(self, action: #selector(menuItemTapped), for: .touchUpInside)
self.addSubview(menuButton)
}
func menuItemTapped(sender: UIView) {
guard let title = sender.accessibilityIdentifier else { return }
let style = MenuItems(rawValue: title)
switch style {
case .menu1:
menuButton.setImages(normalImage: "triangleImage",
image: "menu1",
selectedImage: "closeImage")
case .menu2:
menuButton.setImages(normalImage: "triangleImage",
image: "menu2",
selectedImage: "closeImage")
case .menu3:
menuButton.setImages(normalImage: "triangleImage",
image: "menu3",
selectedImage: "closeImage")
default:
break
}
}
class MultipleImageButton: UIButton {
override init(frame: CGRect) {
super.init(frame: frame)
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func setImages(normalImage: UIImage, image: UIImage, selectedImage: UIImage) {
setImage(normalImage, for: .normal)
setImage(selectedImage, for: .selected)
imageEdgeInsets = UIEdgeInsets(top: 0_5x, left: 1x, bottom: 0_5x, right: (bounds.maxX - 55))
contentHorizontalAlignment = .right
for subview in self.subviews where subview.isKind(of: UIImageView.self) {
subview.removeFromSuperview()//removes images if any
}
let imageView = UIImageView(frame: CGRect(x: bounds.origin.x + 4x,
y: (titleLabel?.bounds.midY ?? 0) + 1x,
width: 5x,
height: frame.height - 2_5x))
imageView.image?.withRenderingMode(.alwaysOriginal)
imageView.image = image
imageView.contentMode = .scaleAspectFit
imageView.layer.masksToBounds = true
addSubview(imageView)
}
}
使用上面的代碼我可以更改按鈕圖像(即 imageView),但它不添加 selectedImage 和 normalImage 只有圖像正在改變。 如何同時顯示 selectedImage 和 normalImage? 這就是我需要的
使用簡單的UIButton
按照這些步驟操作; 不需要使用自定義Button
class。
單擊menuButton
時,將按鈕圖像設置為closeImage
並顯示下拉列表:
menuButton.setImage(UIImage(named: "closeImage"), for: .normal)
// show Dropdown
當您 select 菜單項時,更改menuButton
圖像並隱藏下拉菜單:
menuButton.setImage(UIImage(named: "selectedItem"), for: .normal)
//hide dropdown
swift中的UIButton如何清空imageView?
答案: button.(UIImage(), for: .normal)
它只需從按鈕中刪除您的圖像
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.