Я добавляю UIDatepicker к UIViewController, который является корневым элементом UINavigationController, и я использую этот код для размещения Datepicker в нижней части экрана.Subview неправильно расположен
UIDatePicker *picker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, self.view.frame.size.height - 216, 320, 216)];
[self.view addSubview:picker];
Это обычно должно размещать сборщик точно в нижней части экрана, но он находится на расстоянии 44p. Навигационная панель ровно равна 44p, поэтому я думаю, что это проблема, но я не знаю, почему высота кадра включает в себя высоту навигационной панели, когда она не действует как Subview.
Я знаю, что простой способ - вычесть 44, но я ищу решение без каких-либо фиксированных чисел. Есть ли способ реализовать его, и кто-то может объяснить мне, почему представление включает в себя высоту навигатора?
Хорошо, это решило проблему, но я действительно не знаю почему. ;) – digga
Что делать, если вы не хотите, чтобы он был полупрозрачным, но все же хотите позиционировать без магических чисел? Кажется, что это решение для побочных эффектов ... – bryanmac
@bryanmac - Если вы не хотите, чтобы свойство полупрозрачного объекта было дано, вам нужно сделать высоту представления контроллера вида 960 (режим ipad i.e., 1004-44 portraite). Аналогичный расчет необходим и для iphone. Таким образом вы можете справиться с рамкой зрения для достижения этого требования. Но, конечно, прозрачное свойство является эффективным решением для этого, а не для установки рамки представления. –