2013-02-17 67 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];