Ho cercato questo forum, Google e altri forum e non ho trovato una risposta al mio particolare problema.UITableView con gradiente trasparente in alto e in basso
Fondamentalmente, ho uno UIView
che contiene UITableView
. Ho seguito questo tutorial ed è stato parzialmente positivo. Il problema è il gradiente. Ho un'immagine di sfondo dietro allo UITableView
. Quindi, man mano che la cella si avvicina al gradiente, voglio che venga mostrato lo sfondo, anziché il bianco.
Ho trovato anche questo post quale è il luogo in cui ho trovato il tutorial, ma non volevo dirottarlo con le mie stesse domande per Matt.
Qualsiasi aiuto nella giusta direzione sarebbe fantastico!
EDIT1: So che posso usare un'altra immagine con l'immagine di sfondo e il centro tagliato, ma sto cercando una soluzione che EVITA usando PNG, se possibile.
EDIT2: Ecco un'immagine di ciò che ho adesso:
Edit3:
Ecco il mio codice:
Intestazione:
@interface MyView : UIViewController {
CAGradientLayer *_maskLayer;
UITableView *_tableView;
}
@property (nonatomic, retain) CAGradientLayer *maskLayer;
@property (nonatomic, retain) IBOutlet UITableView *tableView;
Implementazione:
@implementation HighScoresView_iPhone
@synthesize tableView = _tableView;
@synthesize maskLayer = _maskLayer;
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
if (![self maskLayer]) {
[self setMaskLayer:[CAGradientLayer layer]];
CGColorRef outerColor = [UIColor colorWithWhite:1.0 alpha:1.0].CGColor;
CGColorRef innerColor = [UIColor colorWithWhite:1.0 alpha:0.0].CGColor;
[[self maskLayer] setColors:[NSArray arrayWithObjects:
(id)outerColor,
(id)innerColor,
(id)innerColor,
(id)outerColor,
nil
]
];
[[self maskLayer] setLocations:[NSArray arrayWithObjects:
[NSNumber numberWithFloat:0.0],
[NSNumber numberWithFloat:0.2],
[NSNumber numberWithFloat:0.8],
[NSNumber numberWithFloat:1.0],
nil
]
];
[[self maskLayer] setBounds:CGRectMake(0, 0, [[self scoreTableView] frame].size.width, [[self scoreTableView] frame].size.height)];
[[self maskLayer] setAnchorPoint:CGPointZero];
[[[self scoreTableView] layer] addSublayer:[self maskLayer]];
}
}
Non è consigliato per motivi di ottimizzazione, ma hai provato 'cell.backgroundView.backgroundColor = [UIColor clearColor]' o lo stesso per 'contentView' o per 'cell' stessa, o qualche combinazione di questi? – bshirley
sì, le mie celle hanno uno sfondo chiaro. Riesco a vedere lo sfondo quando sono al centro. Ma quando sono vicini alla parte superiore o inferiore, il gradiente che ho creato seguendo il tutorial che ho menzionato, vedo il bianco, invece del contenuto che scompare. – RoLYroLLs
Ho aggiunto un'immagine per mostrare come appare attualmente. – RoLYroLLs