1

在我的应用程序中,我必须根据每个视图垂直布局两个视图,并希望确保它们在 iPhone 4 和 5 中看起来相似。这是代码:

nextShowView = [[WestwoodNextShowView alloc]initWithFrame:CGRectMake(-5, 322, 290, 70)];
    nextShowView.staticLabel.text = @"Next Show";
    nextShowView.date.text = @"10/25";
    nextShowView.address.text = @"Green Dot Tavern";
    nextShowView.cityState.text = @"Detroit, MI";
    [_aboutScroll addSubview:nextShowView];

    playerView = [[WestwoodMusicPlayerView alloc]initWithFrame:CGRectMake(0, 407, 320, 50)];
        [_aboutScroll addSubview:playerView];

    NSDictionary * viewsDict = NSDictionaryOfVariableBindings(nextShowView, playerView);
    NSArray * constraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:[nextShowView]-15-[playerView]-20-|" options:NSLayoutFormatAlignAllLeft metrics:nil views:viewsDict];
    [_aboutScroll addConstraints:constraints];

我试图做的是在 nextShowView 和 playerView 之间留出 15 点空间,从 playerView 底部到视图底部边缘留出 20 点空间。

请帮忙 !!!!

谢谢,

4

1 回答 1

0

仅当您提供每个视图需要完全指定它的所有约束时,自动布局才有效。不仅要给出 and 之间的垂直分隔nextShowView,不仅要给出和 superviewplayerView之间的垂直分隔playerView,还要给出它们的高度,以及它们的水平位置和宽度。

如果您的视图没有出现在您期望的位置,那么您可能没有给出足够的约束。在调试器中暂停并po [[UIWindow keyWindow] _autolayoutTrace]在控制台命令行中确认您是否有不明确的布局。

于 2013-04-24T21:22:36.033 回答