Pergunta

Estou usando o Xcode 6.0 beta 4, acho que os botões no UICollectionViewCell não é resposta à torneira.

Detalhes como:

UICollectionViewController

--- UICollectionViewCell

------ UIButton (UIButton tem dois autolayout restrições para colocar o UIButton no centro vertical e no centro horizontal no Cell )

Agora faça o cell tamanho é algo como:(300, 1000)

Execute o aplicativo no simulador de iPhone ou dispositivo com iOS 7.0 ou 7.1.x, o botão não é tocável, mas teste no simulador iOS 8.0 está OK.Além disso, se eu mudar a célula size para (300, 200), o botão funciona.

Acho que é um bug nesta versão beta do Xcode, certo?

E onde posso enviar o bug para a Apple?

Foi útil?

Solução

Eles se esqueceram de definir uma máscara automática para o contentView de um UICollectionViewCell

isso conserta

self.contentView.autoresizingMask = UIViewAutoresizingFlexibleHeight |    UIViewAutoresizingFlexibleWidth;

Outras dicas

Parece que isso não é realmente um bug, mas um problema de incompatibilidade ao direcionar dispositivos iOS 7 usando o Xcode 6. postagem da ecotaxa descreve isso com mais detalhes, mas aqui está a resposta do Apple DTS:

No iOS 7, as visualizações de conteúdo das células eram dimensionadas por meio de máscaras de redimensionamento automático.No iOS 8, isso foi alterado, as células pararam de usar as máscaras de redimensionamento automático e passaram a dimensionar a visualização do conteúdo em layoutSubviews.Se uma ponta for codificada no iOS 8 e depois decodificá-la no iOS 7, você terá uma visualização do conteúdo sem uma máscara de redimensionamento automático e nenhum outro meio para dimensionar a si mesmo.Portanto, se você alterar o quadro da célula, a visualização do conteúdo não seguirá.

Os aplicativos que estão sendo implantados no iOS 7 terão que contornar isso dimensionando a própria visualização do conteúdo, adicionando máscaras de redimensionamento automático ou adicionando restrições.

A solução de Alexey acima resolverá o problema:

- (void)awakeFromNib
{
   // Fix for iOS 7 devices targeted using Xcode 6.
   self.contentView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top