Weiß jemand, wie fügen Sie einen Gradienten zur Unterseite einer uitableviewcell oder des uiimageview wie das unten gezeigte Bild hinzu?Fügen Sie einen Farbverlauf zur Unterseite einer uitableviewcell/uiimageview hinzu
Antwort
Fügen Sie diese Klasse in Ihrem Projekt (swift):
class UIGradientImageView: UIImageView {
let myGradientLayer: CAGradientLayer
override init?(frame: CGRect){
myGradientLayer = CAGradientLayer()
super.init(frame: frame)
self.setup()
addGradientLayer()
}
func addGradientLayer(){
if myGradientLayer.superlayer == nil{
self.layer.addSublayer(myGradientLayer)
}
}
required init(coder aDecoder: NSCoder){
myGradientLayer = CAGradientLayer()
super.init(coder: aDecoder)
self.setup()
addGradientLayer()
}
func getColors() -> [CGColorRef] {
return [UIColor.clearColor().CGColor, UIColor(red: 0, green: 0, blue: 0, alpha: 0.5).CGColor]
}
func getLocations() -> [CGFloat]{
return [0.5, 0.9]
}
func setup() {
myGradientLayer.startPoint = CGPoint(x: 0.5, y: 0)
myGradientLayer.endPoint = CGPoint(x: 0.5, y: 1)
let colors = getColors()
myGradientLayer.colors = colors
myGradientLayer.opaque = false
myGradientLayer.locations = getLocations()
}
override func layoutSubviews() {
super.layoutSubviews()
myGradientLayer.frame = self.layer.bounds
}
}
UPDATE: Objective-C übersetzt Lösung. Dankeschön an @ SleepsOnNewspapers.
#import "UIGradientImageView.h"
@interface UIGradientImageView()
@property (nonatomic, strong) CAGradientLayer *myGradientLayer;
@end
@implementation UIGradientImageView
-(instancetype)initWithFrame:(CGRect)frame{
if(self){
self = [super initWithFrame:frame];
self.myGradientLayer = [[CAGradientLayer alloc]init];
[self setup];
[self addGradientLayer];
}
return self;
}
-(instancetype)initWithCoder:(NSCoder *)aDecoder{
if(self){
self = [super initWithCoder:aDecoder];
self.myGradientLayer = [[CAGradientLayer alloc]init];
[self setup];
[self addGradientLayer];
}
return self;
}
-(void)addGradientLayer{
if (self.myGradientLayer.superlayer == nil) {
[self.layer addSublayer:self.myGradientLayer];
}
}
Machen Sie Ihre UIImageView
Klasse auf dem Storyboard dieses statt Verzug.
irgendein Unterschied zwischen diesem und CGGradientLayer? Auch ist die Umsetzung dieser viel anders in Ziel c? – SleepsOnNewspapers
.. sollte ähnlich sein. Übersetzen Sie einfach von schnell nach Objective-C, alles ist verfügbar. –
dieser Code wird nicht funktionieren. Es berücksichtigt nicht, dass uitableviewcells neu gezeichnet werden – SleepsOnNewspapers
- 1. Pandas fügen einen Tag zur Spalte hinzu
- 2. Fügen Sie einen benutzerdefinierten Link zur Hudson-Projektseite hinzu
- 3. Fügen Sie einen benutzerdefinierten Status zur TFS-Backboard-Seite hinzu
- 4. Fügen Sie programmatisch Elemente zur Liste hinzu
- 5. Fügen Sie Svg zur Webseite hinzu?
- 6. Fügen Sie einen Dokumentverweis zu PDF hinzu
- 7. So fügen Sie einen Farbverlauf zu einem mit UIBezierPath erstellten CAShapeLayer hinzu
- 8. Ruby: Fügen Sie einen dynamischen Modulnamen hinzu
- 9. Fügen Sie einen Listeneintrag über Javascript hinzu
- 10. So fügen Sie einen Aufpreis hinzu
- 11. Fügen Sie einen glatten Effekt zum Ausblenden einer Liste hinzu
- 12. So fügen Sie einen benutzerdefinierten Adapter zu einer AutoCompleteTextView hinzu
- 13. Wie fügen Sie einen Timer zu einer C# -Konsolenanwendung hinzu
- 14. So fügen Sie einer Liste Optionen hinzu
- 15. Fügen Sie nur URLs mit Datensätzen zur Sitemap hinzu.
- 16. So fügen Sie ical zur iPhone-Anwendung hinzu
- 17. So fügen Sie AdMob zur ViewClass in Android hinzu
- 18. So fügen Sie ein statisches Benutzerfeld zur Django-Abfrage hinzu
- 19. openjdk: So fügen Sie eine Site zur Ausnahmeliste hinzu
- 20. Fügen Sie Schlüssel zur Registrierung hinzu, wenn nicht vorhanden
- 21. Fügen Sie ein eigenes Javascript zur Validierung hinzu
- 22. fügen Sie Informationen zur Eingabe hinzu, wenn AJAX null zurückgibt
- 23. So fügen Sie eine Datenbankabfrage zur Liste der Zeichenkette hinzu
- 24. So fügen Sie Vervollständigungswörter dynamisch zur VS2013-Syntaxerweiterung (MEF) hinzu
- 25. So fügen Sie eine Webansicht zur Listenansicht hinzu
- 26. fügen Sie fünf Minuten zur filemtime Funktion (php) hinzu!
- 27. Fügen Sie xamarin.ios und xamarin.android zur tragbaren Klassenbibliothek hinzu
- 28. Wie fügen Sie StreamSocketListener zur Unity 3D UWP App hinzu?
- 29. Fügen Sie ACF-Felder zur Suchergebnisseite hinzu WordPress
- 30. So fügen Sie Knopf zum Layout zur Laufzeit hinzu
erstellen CAGradientLayer mit transparenter und durchscheinend Region. Setzen Sie dann die Maske der contentView-Ebene der Zelle auf diese Gradient-Ebene. – Sandeep