Почему мой пользовательский UIView
не отображается в контейнере UIView
его родительского? Итак, у меня есть:
- MainViewController - имеет
UIView
"customViewContainer
" (который не занимает весь экран) и - CustomView - это
UIView
с XIB файлом - здесьUIView
здесь, когда он визуализируется (с AspectFit), выполняется за пределами родительского "customViewContainer
"
Код, используемый для настройки пользовательского представления, - это извлечение из MainViewController:
< < cut - см. Update2 ниже →
Итак, я не понимаю, почему представление CustomView
обрабатывается способом, большим по площади, чем родительский customViewContainer
? Я хочу, чтобы CustomView
вписывался в родительский "customViewContainer
" полностью за подход типа AspectFit
.
спасибо
РЕДАКТИРОВАТЬ 1 (добавлено пояснение). Если я "подхватывает субвью" в родительском представлении, тогда он делает клип, но мне действительно нужно отобразить пользовательский вид в родительской области просмотра ( не вся область экрана). Поэтому мне нужно (а), чтобы центр пользовательского представления находился в центре родительского представления, и (б) пользовательское представление AspectFit в родительском представлении должным образом. Любые идеи?
РЕДАКТИРОВАТЬ 2 - Обновить
извините - сделана ошибка копирования/вставки с кодом в исходном вопросе - похоже, не может ее редактировать, поэтому я поставлю правильную версию ниже - так уточнить:
MainViewController
- имеет UIView
"containerView
" (который не занимает весь экран), а CustomView
- это UIView
с XIB файлом - это UIView
здесь, когда он отображается (с помощью AspectFit
), выполняется рендеринг вне границ родительского "containerView
"
С приведенным ниже кодом это имеет смысл сейчас? Причина для этого кода: у меня есть пользовательский UIView
, НО У меня есть связанный с ним файл XIB, так что это был единственный способ получить представление MainController
, чтобы иметь возможность его использовать. То есть, вид контейнера в MainController
view
, а затем программно добавить CustomView
в представление контейнера.
Re "Таким образом, установите рамку или центр представления, который вы добавляете, чтобы быть тем, кем вы хотите его видеть" - вы говорите, что мне нужно программно/вручную установить размер CustomView как то, что я хочу ( в отношении родительского контейнераView)?
То, что я надеялся, было каким-то образом, используя параметр декларативного макета для некоторых, как можно сказать "Загрузить пользовательский вид из этого XIB файла, а aspectFit это представление в self.containerView", однако я стараясь задаться вопросом, возможно ли это?
UPDATED CODE BELOW (ошибка в исходном вопросе, когда я копировал/вставлял его и менял имена переменных и т.д.)
- (void)viewDidLoad
{
[super viewDidLoad];
// Load the custom Altimeter View into this UIControllerView 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];
}