сообщество. Есть странная вещь для изменения размера UIView, которую я не могу понять.UIVIew изменение размера в раскадровке и разница в NIB
Предположим, у нас есть простой одноразовый приложение с Main.storyboard. В раскадровке я создаю RedView
. Он имеет размер по умолчанию 600x600. И все параметры установлены по умолчанию. Я ничего не меняю.
Теперь, я создаю BlueView.xib с BlueView
, и он имеет тот же размер и те же параметры, что и RedView. Также я создаю класс BlueViewControler
и устанавливаю его как владельца в BlueView.xib. BlueViewControler пуст.
RedView включает Blueview как ребенок, как это:
@implementation RedViewController
{
BlueViewController *_blueViewController;
}
- (void)viewDidLoad {
[super viewDidLoad];
_blueViewController = [[BlueViewController alloc] initWithNibName:@"BlueView" bundle:nil];
[self.view addSubview:_blueViewController.view];
}
@end
И теперь, когда я запускающего приложение на iPhone 5 Simulator, RedView становится 320 * 568, и синий вид становится 600 * 600.
2015-08-28 13:32:17.937 TestViewSize[3087:77218] RedView frame = {{0, 0}, {320, 568}}
2015-08-28 13:32:17.938 TestViewSize[3087:77218] BlueView frame = {{0, 0}, {600, 600}}
На экране они также выглядят по-разному. Так что мой вопрос:
Почему RedView, созданный в раскадровке, autoresizes? Я могу понять, почему Blue view 600 * 600, но почему Red настраивается на размер экрана? Кто говорит, чтобы это сделать?
В чем разница между созданием вида в XIB и в раскадровке , связанной с размерами представлений, а не с чем-либо еще. Почему раскадровка изменяет размер своего вида, а .XIB - нет?
Мой проект был создан в Xcode 6, цель 8,0, использование Autolayout
и Size Classes
включены.
и есть переопределить любой из методов инициализации 'BlueViewController'and установить кадр, когда и create with nib – Mukesh
@muku, я знаю, как я могу справиться с этим, меня интересует ** почему ** это происходит? – Akira