почему мое подпредставление UIView не отображается в родительском элементе? (код прилагается)

Почему мой пользовательский UIView не отображается в UIView контейнер своего родителя? Итак, у меня есть:

  • MainViewController - имеет UIView « customViewContainer » (который не занимает весь экран), а
  • CustomView - это 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];
}
17
задан Nischal Hada 18 May 2015 в 03:24
поделиться