Почему мой пользовательский UIView
не отображается в UIView
контейнер своего родителя? Итак, у меня есть:
UIView
« customViewContainer
» (который не занимает весь экран), а UIView
с файлом XIB - это UIView
, который при рендеринге (с AspectFit) рендерится за пределами родительского « customViewContainer
» Код, используемый для настройки пользовательского представления, - это отрывок из MainViewController:
<< вырезать - см. Обновление 2 ниже >>
Поэтому я не могу понять, почему представление CustomView
отображается в способ, который по площади больше, чем родительский customViewContainer
? Я хочу, чтобы customview
вписывался в родительский « customViewContainer
» полностью в соответствии с подходом типа AspectFit
.
спасибо
EDIT 1 (добавлено пояснение) - Если я «обрезаю подпредставления» в родительском представлении, тогда он обрезает вещи, но то, что мне действительно нужно, для рендеринга настраиваемого представления в области родительского представления (а не всей области экрана). Поэтому мне нужно, чтобы (а) центр настраиваемого представления находился в центре родительского представления и (б) настраиваемый вид для AspectFit в родительском представлении должным образом. Есть идеи?
РЕДАКТИРОВАТЬ 2 - Обновление
извините - допустил ошибку копирования / вставки кода в исходном вопросе - кажется, не могу отредактировать его, поэтому я помещу правильную версию ниже - чтобы поясните:
MainViewController
- имеет UIView
« containerView
» (который не занимает весь экран) и CustomView
- это a UIView
с файлом XIB - это UIView
, который при рендеринге (с AspectFit
) рендерится за пределами родительского » ] containerView
"
Имеет ли теперь смысл в приведенном ниже коде? Причина этого кода в том, что у меня есть собственный UIView
, НО у меня есть связанный с ним файл XIB, так что это был единственный способ заставить мое представление MainController
использовать Это. То есть иметь представление контейнера в представлении MainController
, а затем программно добавить CustomView
в представление контейнера.
Re "Итак, установите рамку или центр представление, которое вы добавляете, чтобы оно было таким, каким вы хотите его видеть »- вы говорите, что я должен программно / вручную установить размер CustomView, который я хочу (по отношению к родительскому containerView)?
Я надеялся, что есть способ использовать настройку декларативного макета, чтобы можно было сказать: «Загрузите пользовательское представление из его файла XIB, а аспект - поместите это представление в self.containerView», однако я начинаете задаваться вопросом, возможно ли это?
ОБНОВЛЕННЫЙ КОД НИЖЕ (ошибка в исходном вопросе, когда я копировал / вставлял его и менял имена переменных и т. д.)
- (void)viewDidLoad
{
[super viewDidLoad];
// Load the custom Altimeter View into this UIControllerView's container UIView for it
NSArray *nibs = [[NSBundle mainBundle] loadNibNamed:@"Customview" owner:self options:nil];
for (NSObject *obj in nibs) {
if ( [obj isKindOfClass:[Customview class]]) {
Customview *cv = (Customview*)obj;
[self.containerView addSubview:cv];
break;
}
}
// UI Layout
self.containerView.layer.borderWidth = 2;
self.containerView.layer.borderColor = [[UIColor redColor] CGColor];
}