Ich habe UIImageView
auf jeder meiner UITableView
Zellen eine, die ein entferntes Bild anzeigt (mit SDWebImage
). Ich habe einige QuartzCore
Ebenen für die Bildansicht erstellt:
UIImageView *itemImageView = (UIImageView *)[cell viewWithTag:100];
itemImageView.layer.borderWidth = 1.0f;
itemImageView.layer.borderColor = [UIColor concreteColor].CGColor;
itemImageView.layer.masksToBounds = NO;
itemImageView.clipsToBounds = YES;
Jetzt habe ich ein 50x50-Quadrat mit einem schwachen grauen Rand, aber ich möchte es kreisförmig anstatt quadratisch machen. Die App Hemoglobe
verwendet kreisförmige Bilder in Tabellenansichten, und das ist der Effekt, den ich erzielen möchte. Ich möchte es jedoch nicht verwenden cornerRadius
, da dies meine Bildlauf-FPS verschlechtert.
Hier ist ein Hemoglobe
Rundschreiben UIImageViews
:
Gibt es eine Möglichkeit, diesen Effekt zu erzielen? Vielen Dank.
ios
objective-c
uitableview
uiimageview
SWIFT-Code
quelle
quelle
Antworten:
Stellen Sie einfach die
cornerRadius
Hälfte der Breite oder Höhe ein (vorausgesetzt, die Ansicht Ihres Objekts ist quadratisch).Wenn beispielsweise die Breite und Höhe der Ansicht Ihres Objekts 50 beträgt:
Update - Wie Benutzer atulkhatri betont, funktioniert es nicht, wenn Sie nicht hinzufügen:
quelle
Rand hinzufügen
Für kreisförmige Form
Verweisen Sie auf diesen Link
http://www.appcoda.com/ios-programming-circular-image-calayer/
quelle
Verwenden Sie diesen Code .. Dies wird hilfreich sein ..
Es funktioniert gut für mich. :) :)
quelle
Hier ist eine aktuellere Methode in Swift mit IBDesignable und IBInspectable zur Unterklasse von UIImageView
quelle
Ja, ist es möglich , geben
layer.cornerRadius
(hinzufügen muß#import <QuartzCore/QuartzCore.h>
)für jeden Steuerkreis zu schaffen , aber in Ihrem Fall statt Satz
layer
vonUIImageView
es der beste Weg ist Ihr Bild als Kreis erstellen und fügen Sie sich aufUIImageView
dembackGroundColor
istClearColor
.Verweisen Sie auch auf diese zwei Codequellen.
https://www.cocoacontrols.com/controls/circleview
und
https://www.cocoacontrols.com/controls/mhlazytableimages
Dies kann in Ihrem Fall hilfreich sein:
quelle
Stellen Sie die Höhe und Breite des UIImageView gleich ein, z. B.:
Height=60
&Width = 60
, DanncornerRadius
sollte das genau die Hälfte sein. Ich habe es in meinem Fall auf 30 gehalten. Es hat bei mir funktioniert.quelle
Wenn Sie ein Autolayout und unterschiedliche Zellenhöhen verwenden, tun Sie dies besser folgendermaßen:
quelle
Ich verwende eine Round Image View-Klasse… Also verwende ich sie einfach anstelle von UIImageView und habe nichts zu optimieren…
Diese Klasse zeichnet auch einen optionalen Rahmen um den Kreis. Es gibt oft einen Rand um abgerundete Bilder.
Es ist keine UIImageView-Unterklasse, da UIImageView über einen eigenen Rendering-Mechanismus verfügt und die drawRect-Methode nicht aufruft.
Schnittstelle:
Implementierung :
quelle
Verwendbare Lösung bei der
Swift
Verwendung vonextension
:Verwendung:
quelle
UIImageView
? Dieser Code funktioniert, macht die Erweiterung jedoch für alleUIView
Objekte generisch .UIImageView
erstreckt sich bereits vonUIView
. In einigen Fällen müssen Sie möglicherweise einige umkreisenUIViews
, damit diese Methode für alle funktioniert.Erstellen Sie eine kreisförmige Bildansicht, und das ist ganz einfach mit dem folgenden SO-Link. Verwenden Sie einfach benutzerdefinierte Zellen für Ihre Tabellenansicht, anstatt alles in Ihrer cellForRowAtIndexPath-Methode zuzuweisen.
Wie mache ich eine Schaltfläche mit Bildhintergrund in IPhone rund?
Der obige Link gibt Ihnen ein Beispiel für Schaltflächen, die Sie nur für Ihre Bildansichten verwenden.
quelle
Wenn Sie die Bilder über einer festen Hintergrundfarbe anzeigen, besteht eine einfache Lösung darin, ein Überlagerungsbild mit einem transparenten Kreis in der Mitte zu verwenden.
Auf diese Weise können Sie weiterhin quadratische Bilder verwenden und das Kreisbild darüber hinzufügen, um den Kreiseffekt zu erzielen.
Wenn Sie Ihre Bilder nicht bearbeiten oder auf einer komplexen Hintergrundfarbe anzeigen müssen, kann dies eine einfache Lösung ohne Leistungseinbußen sein.
quelle
Im Handumdrehen innerhalb Ihrer
viewDidLoad
Methode mit deruserImage
Steckdose:quelle
Verwenden Sie in Swift diese Erweiterung für CircularImageView oder RoundedImageView:
Verwendung:
quelle
Verwenden Sie für die kreisförmige Bildansicht den folgenden Code.
Vergessen Sie nicht, den CornerRadius in der viewDidLayoutSubviews-Methode Ihres UIView zu ändern.
Beispiel:
quelle