【问题标题】:Subview visible but frame outside superview frame子视图可见但框架在父视图框架之外
【发布时间】:2017-01-23 15:44:28
【问题描述】:

我有一个父 VC,它在其中加载一个子 VC。父VC中的代码如下:

self.draggerViewController = [[DraggerViewController alloc] initWithSuperView:self.view];

而子VC的代码如下:

- (instancetype)initWithSuperView:(UIView*)superView {
    self = [super init];

    if (self) {
        self.superView = superView;

        [self.view setTranslatesAutoresizingMaskIntoConstraints:NO];
        [superView addSubview:self.view];

        [superView addConstraint:[NSLayoutConstraint constraintWithItem:superView attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeading multiplier:1 constant:0]];

        [superView addConstraint:[NSLayoutConstraint constraintWithItem:superView attribute:NSLayoutAttributeTrailing relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTrailing multiplier:1 constant:0]];

        self.constraintDraggerAttributeBottom = [NSLayoutConstraint constraintWithItem:superView attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeBottom multiplier:1 constant:0];
        [superView addConstraint:self.constraintDraggerAttributeBottom];
    }

    return self;
}

使用此代码,子视图在其父视图上可见,并且正确应用了约束,因此它被放置在父视图的底部,前导和尾随为 0。但是,视图的真实框架在父视图。

也就是说,我可以在父视图的底部看到子视图,但是这个子视图的框架是 frame = (0 -315; 768 35)。

如果我将 'clipToBounds' 设置为 'YES',则视图将放置在真实框架上,但现在未正确应用约束。

如何将此子 VC 放置在父 VC 的视图中我想要使用约束的位置?

谢谢!

【问题讨论】:

    标签: ios constraints parent-child frame subview


    【解决方案1】:

    好的,明白了……

    我忘记了视图的高度限制...真可惜...

    [superView addConstraint:[NSLayoutConstraint constraintWithItem:superView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeHeight multiplier:1 constant:0]];
    

    谢谢大家!

    【讨论】:

      【解决方案2】:

      试试这个:

      superView.insertSubview(self.view, at: self. superView.subviews.count)
      

      【讨论】:

        猜你喜欢
        • 2014-10-07
        • 2014-02-15
        • 1970-01-01
        • 2012-07-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-26
        相关资源
        最近更新 更多