Domanda

Sto usando xcode 6.0 beta 4, trovo che i pulsanti nel UICollectionViewCell non sono risposta al rubinetto.

Dettagli come:

UICollectionViewController
.

--- UICollectionViewCell

------ UIButton (UIButton ha due limiti autolayout per mettere il UIButton in centro verticale e centro orizzontale nel Cell)

Ora fai la dimensione del cell è qualcosa del genere: (300, 1000)

Eseguire l'app in iPhone Simulator o dispositivo con iOS 7.0 o 7.1.x, il pulsante non è tangibile, ma prova in IOS 8.0 simulatore è ok. Inoltre se cambio la cella size su (300, 200), il pulsante funziona.

Penso che sia un bug in questa versione beta xcode, giusto?

E dove posso sparare il bug a Apple?

È stato utile?

Soluzione

hanno dimenticato di impostare una maschera di autoresizingmas per il contentView di un uicollectionViewCells

Questo fix it

self.contentView.autoresizingMask = UIViewAutoresizingFlexibleHeight |    UIViewAutoresizingFlexibleWidth;
.

Altri suggerimenti

Sembra che questo non sia in realtà un bug, ma un problema di incompatibilità del targeting dei dispositivi iOS 7 utilizzando Xcode 6. Post Ecotax lo descrive in modo più dettagliato, ma qui è la risposta da Apple DTS:

.

In iOS 7, le viste del contenuto delle celle si sono dimezzate tramite maschere autoresizing. In IOS 8, questo è stato modificato, le celle hanno smesso di usare le maschere di autoresigliamento e ha iniziato a ridimensionare la vista del contenuto in LayoutSuSupviews. Se un pennino è codificato in IOS 8 e poi decodificalo su iOS 7, avrai una vista di contenuto senza una maschera di autoresizzante e nessun altro mezzo per cui si taglia. Quindi, se mai modifichi il fotogramma della cella, la vista del contenuto non seguirà.

Le app che vengono distribuite a IOS 7 dovranno lavorare attorno a questo dimensionando la vista del contenuto stessa, aggiungendo maschere di autoresiglia o aggiungendo vincoli.

La soluzione di Alexey sopra farà il trucco però:

- (void)awakeFromNib
{
   // Fix for iOS 7 devices targeted using Xcode 6.
   self.contentView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
}
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top