如何使用ios中的自动布局“约束与项目”格式来滚动滚动视图?

时间:2015-09-08 14:36:46

标签: ios swift

这里我使用“带项目约束”格式在Viewcontroller上以编程方式添加一个scrollview,在该scrollview中我添加了一个UIlabel。一切都很好。

但是在这里我在scrollview和label之间给出了“NSLayoutAttributeBottom”是“-200”,这意味着scrollview在viewcontroller控制器上滚动到“200”范围,但根据我的代码它不滚动。

根据拖放程序,没关系,我已经检查过,它工作正常。

为什么不可能以编程方式执行此操作?

我的代码如下: -

#import "ViewController4.h"

@interface ViewController4 ()
{
    UIScrollView * scrollView;
    UILabel * label;
}

@end

@implementation ViewController4

- (void)viewDidLoad {
    [super viewDidLoad];

    scrollView = [[UIScrollView alloc] init];
    scrollView.backgroundColor = [UIColor lightGrayColor];
    scrollView.translatesAutoresizingMaskIntoConstraints = NO;
    [self.view addSubview:scrollView];

    label = [[UILabel alloc] init];
    label.backgroundColor = [UIColor redColor];
    label.text = @"Hello World1";
    label.textAlignment = NSTextAlignmentCenter;
    label.translatesAutoresizingMaskIntoConstraints = NO;
    [scrollView addSubview:label];

    //Applying autolayouts for scrollview
    NSLayoutConstraint * constraint1 = [NSLayoutConstraint constraintWithItem:scrollView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem: self.view attribute:NSLayoutAttributeTop multiplier:1.0f constant:0.0f];
    [self.view addConstraint:constraint1];

    constraint1 = [NSLayoutConstraint constraintWithItem:scrollView attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeading multiplier:1.0f constant:0.0f];
    [self.view addConstraint:constraint1];

    constraint1 = [NSLayoutConstraint constraintWithItem:scrollView attribute:NSLayoutAttributeTrailing relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTrailing multiplier:1.0f constant:0.0f];
    [self.view addConstraint:constraint1];

    constraint1 = [NSLayoutConstraint constraintWithItem:scrollView attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeBottom multiplier:1.0f constant:0.0f];
    [self.view addConstraint:constraint1];

    //Applying autolayouts for label
    NSLayoutConstraint * constraint2 = [NSLayoutConstraint constraintWithItem:label attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem: scrollView attribute:NSLayoutAttributeTop multiplier:1.0f constant:100.0f];
    [scrollView addConstraint:constraint2];

    constraint2 = [NSLayoutConstraint constraintWithItem:label attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:scrollView attribute:NSLayoutAttributeLeading multiplier:1.0f constant:10.0f];
    [scrollView addConstraint:constraint2];

    constraint2 = [NSLayoutConstraint constraintWithItem:label attribute:NSLayoutAttributeTrailing relatedBy:NSLayoutRelationEqual toItem:scrollView attribute:NSLayoutAttributeTrailing multiplier:1.0f constant:-10.0f];
    [scrollView addConstraint:constraint2];

    constraint2 = [NSLayoutConstraint constraintWithItem:label attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0f constant:30.0f];
    [scrollView addConstraint:constraint2];

    constraint2 = [NSLayoutConstraint constraintWithItem:label attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:scrollView attribute:NSLayoutAttributeCenterX multiplier:1.0f constant:0.0f];
    [scrollView addConstraint:constraint2];

    constraint2 = [NSLayoutConstraint constraintWithItem:label attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:scrollView attribute:NSLayoutAttributeBottom multiplier:1.0f constant:-100.0f];
    [scrollView addConstraint:constraint2];

}

在上面的代码中我明确给出了NSLayoutAttributeBottom空间是“-200”但是scroollview不滚动我在这里做错了请帮助我一些如何滚动这个滚动视图

0 个答案:

没有答案