Ich habe eine UIButton, und ich möchte auf die UIImageView des Hintergrundbildes zugreifen, so dass ich das Bild rund machen kann. Ich weiß, dass ich das Bild selbst beeinflussen kann, aber ich würde es lieber eleganter machen. Ich weiß auch, dass ich die button.currentBackgroundImage
Eigenschaft verwenden kann, um das UIImage im Hintergrund zu erhalten, aber ich möchte die Ansicht selbst. Sobald ich die Ansicht habe, beabsichtige ich, diesen Code zu verwenden:Zugriff auf die UIImageView des Hintergrundbildes eines UIButton
buttonImageView.layer.cornerRadius = buttonImageView.frame.size.width/2;
buttonImageView.clipsToBounds = YES;
Wie kann ich auf den ButtonImageView zugreifen?
EDIT: Aufgrund @ vhristoskov Vorschläge, habe ich versucht, den Knopf selbst mit diesem Code Zuschneiden:
self.button.layer.cornerRadius = self.button.frame.size.width/2;
self.button.clipsToBounds = YES;
Und es hat diese Form:
Nach dem Debuggen Ich fand, dass frame.size.width war 46, wenn es 100 hätte sein sollen. Also habe ich diesen Code stattdessen versucht:
self.button.layer.cornerRadius = self.button.currentBackgroundImage.size.width/2;
self.button.clipsToBounds = YES;
Und das erzeugt diese Form:
Und diesmal wurde die cornerRadius
bis 65. So gesetzt wird scheint es tatsächlich wie mein Problem ist, dass ich im Moment die richtige Breite haben nicht . Auf welche Eigenschaft sollte ich zugreifen, um die richtige Nummer zu erhalten?
Gibt es einen Grund, nicht den gleichen Code direkt auf Ihren UIButton zu bewerben? – vhristoskov
@vhristoskov hmmm Ich habe gerade versucht, und ich bekam ein seltsames Ergebnis, das Bild war seltsam geformt. Ich kann einen Screenshot hinzufügen, was mit meiner Frage passiert ist, wenn Sie möchten. – multitaskPro
Das wäre großartig.Sie könnten auch ein Bild Ihrer Beschränkungen in der IB hinzufügen (oder den Code, den Sie verwendet haben, um den Rahmen der Schaltfläche zu setzen). – vhristoskov