2015-06-10 9 views
2

Извините, мой английский плохой. Мой код, как показано ниже: две точки зрения будут добавлены в окнопри добавлении ограничений в представление, которое я добавил в UIWindow?

UIWindow *window = [[[UIApplication sharedApplication] delegate] window]; 
    if (!_transparentView) { 
     _transparentView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_BOUNDS.size.width, SCREEN_BOUNDS.size.height)]; 
     [_transparentView setBackgroundColor:[UIColor blackColor]]; 
     [_transparentView setAlpha:0.5]; 
     [window addSubview:_transparentView]; 
    } 
    [_transparentView setHidden:NO]; 
    _noSupportairDropTipView = [[[NSBundle mainBundle] loadNibNamed:@"ConnectPhoneTipView" owner:self options:nil] lastObject]; 

[window addConstraint:[NSLayoutConstraint constraintWithItem:_noSupportairDropTipView attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:window attribute:NSLayoutAttributeCenterX multiplier:1 constant:0]]; 
[window addConstraint:[NSLayoutConstraint constraintWithItem:_noSupportairDropTipView attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:window attribute:NSLayoutAttributeCenterY multiplier:1 constant:0]]; 
[_noSupportairDropTipView addConstraint:[NSLayoutConstraint constraintWithItem:_noSupportairDropTipView attribute:NSLayoutAttributeWidth relatedBy:0 toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1 constant:293]]; 
[_noSupportairDropTipView addConstraint:[NSLayoutConstraint constraintWithItem:_noSupportairDropTipView attribute:NSLayoutAttributeHeight relatedBy:0 toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1 constant:277]]; 

[window addSubview:_noSupportairDropTipView]; 

. Я получил ошибку, как показано ниже. Я не знаю, почему.

<UIView: 0x190c3e10; frame = (0 0; 320 480); alpha = 0.5; layer = 
<CALayer: 0x191b45f0>> View not found in container hierarchy: 
<ConnectPhoneTipView: 0x190d8920; frame = (0 0; 293 277); autoresize 
= RM+BM; layer = <CALayer: 0x1917b5e0>>  That view's superview: NO SUPERVIEW libc++abi.dylib: terminate_handler unexpectedly threw an 
exception 

Должен ли я добавить некоторые ограничения в _transparentView? это причина? или другая причина

+0

Где 'ConnectPhoneTipView'? ошибка связана с этим, но я не вижу его в фрагменте кода. –

+0

_supportAirDropTipView = [[[NSBundle mainBundle] loadNibNamed: @ "ConnectPhoneTipView" владелец: self options: nil] lastObject]; – paopao

+0

Вы добавляете '_noSupportairDropTipView', но не используете' _SupportairDropTipView' (без 'no'), это правильно? Кроме того, откуда происходит '_noSupportairDropTipView'? –

ответ

2

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

_noSupportairDropTipView = [[[NSBundle mainBundle] loadNibNamed:@"ConnectPhoneTipView" owner:self options:nil] lastObject]; 
[window addSubview:_noSupportairDropTipView]; 

[window addConstraint:[NSLayoutConstraint constraintWithItem:_noSupportairDropTipView attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:window attribute:NSLayoutAttributeCenterX multiplier:1 constant:0]]; 
[window addConstraint:[NSLayoutConstraint constraintWithItem:_noSupportairDropTipView attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:window attribute:NSLayoutAttributeCenterY multiplier:1 constant:0]]; 
[_noSupportairDropTipView addConstraint:[NSLayoutConstraint constraintWithItem:_noSupportairDropTipView attribute:NSLayoutAttributeWidth relatedBy:0 toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1 constant:293]]; 
[_noSupportairDropTipView addConstraint:[NSLayoutConstraint constraintWithItem:_noSupportairDropTipView attribute:NSLayoutAttributeHeight relatedBy:0 toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1 constant:277]]; 
+0

Отлично! ты прав! теперь он отображается. но теперь я хочу задать вам вопрос. Как сделать uiview больше, если его subviews станут больше. – paopao

+1

Я знаю, что делать. Большое спасибо. – paopao