Comment rendre ce UITableView clair (transparent) dans Swift 3
Comment puis-je faire de cette UITableView
et ce sont des cellules claires dans Swift 3.
Je suis passé par le précédent threads, mais j'ai toujours un fond blanc.
Comme vous pouvez le voir dans mon code, j'ai essayé les différentes méthodes mentionnées:
override func viewDidLoad() {
self.communitiesTableView.delegate = self
self.communitiesTableView.dataSource = self
let background = CAGradientLayer().bespokeColor()
background.frame = self.view.bounds
// view.addSubview(background)
super.viewDidLoad()
//Do any additional setup after loading the view.
}
et dans ma cellule de la table de fonction:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let title = self.communities[indexPath.row]
let cell = UITableViewCell()
cell.textLabel?.text = title
cell.textLabel?.font = UIFont(name: "Avenir", size: 12)
cell.textLabel?.textColor = UIColor.red
cell.textLabel?.backgroundColor = UIColor.clear
cell.contentView.backgroundColor = UIColor.clear
communitiesTableView.backgroundColor = UIColor.clear
cell.layer.backgroundColor = UIColor.clear.cgColor
return cell
}
Ce gif montre le problème de l'avis des lignes noires montrant la table est présente tout simplement pas rempli (que personne n'est connecté)
Mais pour le second il est clair, puis s'allume en blanc.
Où vais-je tort?
C'est à partir d'un autre post que j'ai trouvé:
Apple document dit
... Dans iOS 7, les cellules ont un fond blanc par défaut; dans les versions antérieures d'iOS, les cellules hériter de la couleur d'arrière-plan de l'affichage de la vue de la table. Si vous voulez changer la couleur de fond d'une cellule, le faire dans la tableView:willDisplayCell:forRowAtIndexPath: méthode de votre vue de la table délégué.
Vous pourriez avoir besoin d'utiliser willDisplayCell UITableView délégué méthode pour avoir un fond transparent pour votre table .
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cellforRowAtIndexPath:(NSIndexPath *)indexPath
{
[cell setBackgroundColor:[UIColor clearColor]];
}
Comment puis-je appliquer le code ci-dessus comme il dit sa pour iOS 7?
source d'informationauteur RDowns
Vous devez vous connecter pour publier un commentaire.
Remarque: ci-Dessous le code d'été testé dans
Swift 3
.Méthode 1:
Sélectionnez votre tableViewCell de votre
storyboard
et gotoAttributes Inspector
sousView
changementBackground
àclear
Méthode 2: Essayer de code ci-dessous à l'intérieur de votre
cellForRowAt
Remarque : Si la méthode ci-dessus ne fonctionne pas.essayez de vider votre projet de construction en appuyant sur
shift + option + command + k
Mise à jour: mise à Jour de votre
cellForRowAt
de code ci-dessous...Vous devez définir à la fois de table et de fond de la cellule claire.
À l'intérieur de tableView fonction:
Vous pouvez essayer ce
dans viewDidLoad: tableView.backgroundColor = UIColor.claire
dans cellForRowAt: cellule.contentView.backgroundColor = UIColor.claire
C'est un travail pour moi
Pour que cela fonctionne, vous devez mettre en œuvre une nouvelle méthode tableview:
Il vous manque le réglage de la couleur d'arrière-plan de contentView de la cellule.
cell.contentView.backgroundColor = UIColor.clear
Peut-être, vous pouvez vérifier votre vue de la table de l'alpha.
La définition de ces ne sera pas assez que vous n'avez pas appliqué
clear color
à lacontentView
de latableView
et donc c'est la coloration blanc. Essayez ceci dans le cellForRowAtIndexPathcell.contentView.backgroundColor = UIColor .clearColor()
Assurez-vous de l'Identité de l'Inspecteur-vous Personnalisés Classe -> Class "YourCustomClassCellName" est sélectionné dans le Menu Déroulant. Avec votre UITableViewCell sélectionné dans Interface Builder, assurez-vous que votre Identifiant est "YourCellName" et puis dans le func tableView(_ tableViewL UITableView, cellForRowAt) méthode avant le retour de la cellule que vous avez de la cellule.backgroundColor = UIColor.clair, je.e,
J'ai eu le même problème et a écrit tout le code avant j'ai vérifié pour voir que mon CellClass a été sélectionné et tapisse la face quand j'ai passé une heure à me demander pourquoi il a travaillé sur un autre viewController et pas dans la présente instance. Même si vous utilisez de l'IB pour effacer le défaut blanc, vous devez écrire la cellule.backgroundColor = UIColor.clair. J'étais comme yep, j'ai trouvé un autre bug dans 8.2.1, mais pas juste un iD10t opérateur de bug.
J'ai testé l'utilisation de swift 3. Il travaille