使用故事板时需要以编程方式调整子视图的大小?

Posted

技术标签:

【中文标题】使用故事板时需要以编程方式调整子视图的大小?【英文标题】:What is the need to resize subviews programmatically when using storyboards? 【发布时间】:2014-02-25 17:00:07 【问题描述】:

我精通自定义视图。今天我开始使用故事板,但我无法说服自己使用故事板。

问题: - 我在情节提要中由 View Controller 设置。 - 在 4 英寸模拟器上运行,我很适合使用 Views 的布局。 - 在 3.5 英寸的模拟器上运行,我很沮丧,因为我的视图是部分可见的。

这里是屏幕截图。

我的 SotryBaord(查看“删除用户”按钮)。

删除用户按钮框架:

在 4 英寸模拟器上运行

在 4 英寸模拟器上运行(我有问题)

如何使用布局调整框架,使其在两种尺寸的 iPhone 中都能清晰运行。我的删除用户按钮不应该离开屏幕。

【问题讨论】:

你设置了自动布局吗? 是的,在 autoLayout 的名称上,我选中了复选框 Use AutoLaout 您可能需要学习自动布局。这是一个非常好的自动布局教程。 raywenderlich.com/20881/beginning-auto-layout-part-1-of-2 只需固定按钮和视图底部之间的距离。 【参考方案1】:

朋友,自动布局有点复杂,你需要花很多时间掌握它,但如果你想在几分钟内完成它,只需取消选中自动布局,选择每个 UI 元素并将其自动调整大小设置为这个。

您可以改变自动布局,只需点击此按钮即可查看更改

希望这会有所帮助并节省时间。

【讨论】:

【参考方案2】:

非常好的问题。当我升级它们以支持 iphone 5 屏幕尺寸时,我遇到了与我的每个应用程序完全相同的问题。

我最终做的是禁用自动布局,但我仍然使用故事板来放置所有按钮、视图、图像等。我确保在放置所有项目时在故事板中使用 3.5 英寸。然后,我将这些 UILabel 或 UIButton 等连接到 IBoutLet,然后在我的 ViewDidLoad 中检查它的 iphone 4 与 iPhone 5 是否并相应地重新定位所有按钮。

例如。

- (void)viewDidLoad

    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
        
            CGSize result = [[UIScreen mainScreen] bounds].size;
            if(result.height == 480)
            
                // iPhone Classic

            
            if(result.height == 568)
            
                // iPhone 5 this is the offset I am using
                int yInt = 50;

                [blurSlider setFrame:CGRectMake(31, 406+yInt, 271, 34)];
                [alphaSlider setFrame:CGRectMake(31, 447+yInt, 271, 34)];

                [blurLabel setFrame:CGRectMake(33, 392+yInt, 71, 24)];
                [alphaLabel setFrame:CGRectMake(33, 436+yInt, 71, 24)];
            
        

我可以在不使用故事板的情况下完成所有编码吗?我当然可以,但我发现故事板的视觉方面很吸引人,并且可以准确地看到屏幕上的所有内容。

【讨论】:

感谢您的回答,但我认为这很像自定义视图方法,我对此非常熟悉。有趣的是,我想知道使用故事板自动布局的好处。感谢您的帮助。

以上是关于使用故事板时需要以编程方式调整子视图的大小?的主要内容,如果未能解决你的问题,请参考以下文章

用 UIScrollView 和故事板约束发疯

iOS 故事板 - 自动布局不会调整子视图的大小和位置

故事板视图(iphone 4/5/6)影响集合单元大小的布局(以编程方式设置)

UIView 调整内容大小

带有故事板原型的 UITableViewCell 子视图的动态大小

调整图像大小以适合 xcode 故事板中的 Ui 图像视图