2 строки о ширине / высоте якоря пришли из ответа Fallstreak и были решением в этом случае.

на мой вопрос был намекнут вэтот вопрос, поэтому я думаю, что ответ должен отключить автопоставку для моего представления UIToolbar.

Код, который, как говорят, работает для представлений,

cButton.translatesAutoresizingMaskIntoConstraints = YES;

Но я не уверен, применимо ли это к моему коду, поскольку UIToolbar не наследуется от UIView.

У меня есть много маленьких изображений, которые я использую в своих играх, которые имеют разные размеры в зависимости от устройства и ориентации. Вместо того, чтобы иметь много разных изображений и добавлять новые, когда Apple представляет новые устройства, я решил создать по одному изображению размером 160x160 для каждого, а затем изменить его размер при использовании. Это работало нормально с iOS 4 - iOS 10, но не работает в iOS 11.

Код довольно прост:

// 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];

Вот как это выглядит до 11. Размеры кнопок панели были изменены и хорошо вписались в нижнюю панель. Обратите внимание, что я уменьшил размер галочки на 50%, просто чтобы убедиться, что я смотрю на правильный код и он ведет себя так, как я ожидал.

Вот как они выглядят в симуляторе для Xcode 9.0 GM и iOS 11. Обратите внимание, что верхний ряд кнопок изменяет размер правильно, но нижний ряд расширяется, чтобы заполнить пространство, выделенное для панели вкладок. То же самое происходит и на iPad, и на разных устройствах.

Любые идеи о том, как отключить Autolayout или добавить ограничения?

Ответы на вопрос(2)

Ваш ответ на вопрос