Imagens do item não dimensionadas para o iOS 11 UIBarButton

A resposta para minha pergunta foi sugerida emessa questão, acho que a resposta é desativar o pagamento automático para minha visualização da barra de ferramentas do UITool.

O código que funciona para visualizações é

cButton.translatesAutoresizingMaskIntoConstraints = YES;

Mas não tenho certeza se isso se aplica ao meu código, pois o UIToolbar não herda do UIView.

Eu tenho muitas imagens pequenas que eu uso nos meus jogos de tamanhos diferentes, dependendo do dispositivo e da orientação. Em vez de ter muitas imagens diferentes e adicionar novas quando a Apple introduzir novos dispositivos, decidi criar uma imagem de 160x160 para cada uma e depois redimensioná-la quando usada. Isso funcionou bem no iOS 4 - iOS 10, mas falha no iOS 11.

O código é bem direto:

// Get the image
NSString *pictFile = [[NSBundle mainBundle] pathForResource:@"Correct" ofType:@"png"];
UIImage *imageToDisplay = [UIImage imageWithContentsOfFile:pictFile];
UIImage *cImage  = [UIImage imageWithCGImage:imageToDisplay.CGImage scale:[UIScreen mainScreen].scale orientation:imageToDisplay.imageOrientation];

UIButton *cButton = [UIButton buttonWithType:UIButtonTypeCustom];
[cButton setImage:cImage forState:UIControlStateNormal];
[cButton setTitle:@"c" forState:UIControlStateNormal];

//set the frame of the button to the size of the image
cButton.frame = CGRectMake(0, 0, standardButtonSize.width, standardButtonSize.height);

//create a UIBarButtonItem with the button as a custom view
c = [[UIBarButtonItem alloc] initWithCustomView:cButton];

É assim que parece pré-11. Os itens do botão da barra foram redimensionados e se encaixam perfeitamente na barra inferior. Observe que reduzi o tamanho da marca de seleção em 50% apenas para ter certeza de que estava olhando para o código correto e se comporta como eu esperava.

Veja como eles são no simulador para Xcode 9.0 GM e iOS 11. Observe que a linha superior dos botões é redimensionada corretamente, mas a linha inferior é expandida para preencher o espaço alocado para a barra de guias. O mesmo comportamento também acontece nos iPads e em vários dispositivos.

Alguma idéia de como desativar o Autolayout ou adicionar restrições?

questionAnswers(2)

yourAnswerToTheQuestion