7
votes

Séparateur de Séparateur Uitail d'entretien personnalisé ne fonctionne pas sur iOS 8 avec des storyboards.

Tous les TableViews de mon application ne respecte pas la propriété SéparatorIset - personnalisé - gauche = 0 sur Storyboard . Tout fonctionnait bien sur iOS 7 , mais plus.

Lorsque je implémente les deux méthodes ci-dessous: xxx

Ça fonctionne correctement, je ne comprends tout simplement pas pourquoi je ne peux pas continuer à définir cela sur Storyboard < / code> qui est beaucoup plus simple.

Toute pensée?


0 commentaires

3 Réponses :


5
votes

Ce code peut vous aider. Incluez à la fois layoutmargins et SéparatorIset pour supporter les deux versions iOS 7,8 Pour iOS8:

Configurez d'abord la vue de votre table comme suit: p> xxx pré>

puis dans votre méthode, configurez la cellule comme suit: p> xxx PRE>

Pour la version Vérification Vous pouvez utiliser les éléments suivants: P>

#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 80000
  if ([self respondsToSelector:@selector(setLayoutMargins:)]) {
    cell.layoutMargins = UIEdgeInsetsZero;
  }
#endif


2 commentaires

Eh bien, merci. Mais en termes de code, mon code fonctionne bien. Je voulais juste pouvoir définir le retrait de séparateur dans Storyboard, sans aucun code. Mais cela ne semble pas fonctionner sur iOS 8.


J'ai aussi cette question. Avez-vous déposé un radar que je peux dupe?



1
votes
    func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
    // Remove separator inset
    if cell.respondsToSelector("setSeparatorInset:") {
        cell.separatorInset = UIEdgeInsetsZero
    }

    // Prevent the cell from inheriting the Table View's margin settings
    if cell.respondsToSelector("setPreservesSuperviewLayoutMargins:") {
        if #available(iOS 8.0, *) {
            cell.preservesSuperviewLayoutMargins = false
        }
    }

    // Explictly set your cell's layout margins
    if cell.respondsToSelector("setLayoutMargins:") {
        if #available(iOS 8.0, *) {
            cell.layoutMargins = UIEdgeInsetsZero
        }
    }
}

0 commentaires

0
votes

facile:

Cell.sparatoratoratorSet = UiedgeIsetsPake (0,0, CGRectureGetWidth (TableView.frame) / 2, 0,0, CGRectureGetWidth (TableView.frame) / 2);


0 commentaires