Autolayout使ScrollView中的ImageView不可滚动

时间:2013-10-05 01:30:51

标签: iphone ios objective-c ios7 autolayout

所以我和我的伙伴一直在开发应用程序。我们在ScrollView中嵌入了一个ImageView。它适用于iOS 5,但现在我们将它更新到iOS 7.我们现在必须使用autolayout使应用程序看起来再好看。但这会禁用滚动它。我们尝试了一段时间来添加允许图像再次滚动的代码,但没有任何帮助。

我们已经尝试过在阳光下我们可以找到处理viewDidLoad(我们最初是为iOS 5做的)和viewDidAppear(我们添加的内容符合iOS 7和更好的实用性标准)。任何建议都会受到赞赏,我们已经筋疲力尽了。

@property (weak, nonatomic) IBOutlet UIScrollView *Scroll;
@property (weak, nonatomic) IBOutlet UIImageView *Image;

...

- (void)viewDidLoad
{
    [super viewDidLoad];

    // This is what we did for iOS 5
    //self.Scroll.contentSize = self.Image.image.size;
    //self.Image.frame = CGRectMake(0, 0, self.Image.image.size.width, self.Image.image.size.height);
}

-(void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];

    //One of the many NEW attempts for iOS 7
    self.Scroll.contentSize = CGSizeMake(self.Image.image.size.width,self.Image.image.size.height);
}

1 个答案:

答案 0 :(得分:1)

您可能错误地分配了约束。

我能够使用约束来实现它:

NSDictionary *bindings = @{@"imageView": self.Image};
[self.Scroll addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[imageView]|" options:0 metrics:0 views:bindings]];
[self.myScrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[imageView]|" options:0 metrics:0 views:bindings]];

另见:https://stackoverflow.com/a/13548039/580291 并指出:https://developer.apple.com/library/ios/releasenotes/General/RN-iOSSDK-6_0/index.html(搜索scrollview)