UIButton คลาสย่อยเปลี่ยนไปเมื่อมีการคลิกแบบอักษร

0

คำถาม

ฉันเห็นบางอย่างแปลกๆพฤติกรรมจากอาเรย์ของปุ่มฉันต้องสร้างใน storyboard. ผมมี 4 ปุ่มแต่ละชนิดตั้งเอง TakesContainerButton และตอนที่ปุ่มคือมีการคลิกมันจะเปลี่ยนกับระบบแบบอักษรแต่พอที่แตกต่างกันปุ่มคือมีการคลิกที่ความเดิมตอนที่แล้วปุ่มกลับมาเพื่อที่ต้องการแบบอักษร,ไม่แน่ใจว่าเกิดอะไรขึ้นที่นี่

ระดุมยังฝังอยู่ในกองเข็องมุมมองถ้ามันสำคัญ

นี่คือที่ implementation ตอนหนึ่งของปุ่มก็ได้กดดันอยู่ไหน buttons เป็นอาเรย์ของ 4 ปุ่ม

@IBAction func filterPressed(_ sender: TakesContainerButton) {
        for button in buttons {
            button.unclick()
        }
        sender.click()
    }

นี่คือกำหนดเองเรียน

class TakesContainerButton: UIButton {

        
        var bottom = UIView()
        
        func click(){
            self.setTitleColor(.darkGray, for: .normal)
            let xOffset:CGFloat = 10
            bottom = UIView(frame: CGRect(x: xOffset / 2, y: self.frame.height - 3, width: self.frame.width - xOffset, height: 3))
            bottom.layer.cornerRadius = 1.5
            bottom.backgroundColor = .darkGray
            self.addSubview(bottom)
        }
        
        func unclick(){
            bottom.removeFromSuperview()
            self.setTitleColor(UIColor(hex: "8B8B8B"), for: .normal)
        }
        
        override func awakeFromNib(){
            setFont()
        }
        
        func setFont(){
            self.titleLabel?.font = UIFont(name: "Lato-Bold", size: 12)
        }
    }
ios swift uibutton
2021-11-23 22:12:09
1

คำตอบที่ดีที่สุด

0

มันมีเหตุผลที่เฉพาะเจาะจงที่คุณเรียก setFont()ทุกคลิก เหมือนฉันสามารถมองเห็นว่าคุณไม่ได้เปลี่ยนแบบอักษรที่คุณควรจะตั้งค่าแบบอักษรที่เวลาของมุมมองกำลังโหลดและออกจากตัวอักษรอย่างนี้ก็ได้

2021-11-23 22:56:54

ทีแรกมันเป็นเพียงทางเดียว awakeFromNib แต่ฉันกำลังประสบนั้นปัญหางั้นฉันใส่มันในทั้งสองคลิกและ unclick
tHatpart

คุณไม่จำเป็นต้องตั้งค่าแบบอักษรทุกครั้ง
Anubhav Giri

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่