2013-02-17 118 views
3

iOS 6.0 Release notes有下面的语句,使视图浮在滚动视图:如何使用自动布局

请注意,您可以滚动视图的子视图出现浮动 (不滚动)在通过在视图和滚动视图的子树之外的视图之间创建约束 来滚动其他内容,例如滚动视图的超级视图的 。

任何人有任何想法?

回答

3

我做了一些玩耍,我有一个工作的例子。

视图不滚动,它被放在顶部,高度是scrollview hight和任意值之间的差值。

// in viewDidLoad 

UIIView *myView = [[UIView alloc] init]; 
[self.scrollView addSubview:myView]; 
myView.translatesAutoresizingMaskIntoConstraints = NO; 

NSLayoutConstraint *constraint = [NSLayoutConstraint constraintWithItem:self.mapView 
    attribute:NSLayoutAttributeTop 
    relatedBy:(NSLayoutRelationEqual) 
     toItem:self.containerView 
    attribute:(NSLayoutAttributeTop) 
    multiplier:1.0 
    constant:0]; 
[self.view addConstraint:constraint]; 


// Give my view some intrinsic size 
NSDictionary *dict = NSDictionaryOfVariableBindings(myView); 
NSArray *constraints = [NSLayoutConstraint constraintsWithVisualFormat:@"|[myView]|" 
                   options:(NSLayoutFormatAlignAllBaseline) 
                   metrics:nil 
                   views:dict]; 
[self.view addConstraints:constraints]; 

// In view did appear 

// calc height from height of scroll view - this is needs work 
float height = -self.scrollView.frame.size.height + 250; 

NSLayoutConstraint *constraint = [NSLayoutConstraint constraintWithItem:self.mapView    attribute:NSLayoutAttributeHeight 
    relatedBy:(NSLayoutRelationEqual) 
     toItem:self.containerView 
    attribute:(NSLayoutAttributeHeight) 
     multiplier:1.0 
    constant:offset]; 
[self.view addConstraint:constraint]; 
相关问题