【问题标题】:resize my app on another iOS devices?在其他 iOS 设备上调整我的应用程序的大小?
【发布时间】:2015-04-02 15:22:01
【问题描述】:

我为 iPhone 5 制作了一个应用程序,现在我想让它在其他 iOS 设备上可用,但我不知道如何调整不同尺寸的标签。

我有一个标签可以通过 iPhone 5 尺寸改变他的观点:

    if (a == true) {
self.minutes.frame = CGRectMake(271, 109, 140,100)
}

我曾经玩过自动布局,但标签总是“跳”到这里:

CGRectMake(271, 109, 140,100)

然后回到他的第一位。

我该如何解决。 谢谢

【问题讨论】:

    标签: ios iphone xcode ipad swift


    【解决方案1】:

    您可以测试不同的 iphone 尺寸

    if(  UIScreen.mainScreen().bounds.size.width == 568)
    
    {self.minutes.frame = CGRectMake(271, 109, 140,100)}
    
    else if(UIScreen.mainScreen().bounds.size.width == 667 )
    
    { change to the size that looks best in iphone 6 }
    
    else if(UIScreen.mainScreen().bounds.size.width == 736 )
    
    { change to the size that looks best on iphone 6 plus }
    
    else
    
    { change to the size that you want for the smaller devices }
    

    【讨论】:

    • iPhone 4s/6/6plus/ipad 怎么办?
    • 至于ipad你可能要制作一个新的storyboard,你用的是xcode吗?
    • 是的,我正在使用 xCode。但我更喜欢知道如何在 iPhone 尺寸上制作它。顺便说一句,我不明白你的代码,你能修复/解释一下吗?
    • 当然,您是否要在所有设备上制作整个应用程序?还是只是调整标签的大小?
    • 我正在尝试在所有设备上制作该应用
    【解决方案2】:

    您绝对应该为此使用 AutoLayout,如果您尝试过,您需要确保编辑约束以更改视图的位置或大小,而不是设置 frame。 这里有一个很好的介绍 AutoLayout 的教程:http://www.appcoda.com/introduction-auto-layout/

    另外,UILabel 具有固有的内容大小(大小取决于文本和字体),因此您不应手动更改其大小。

    【讨论】:

    • 如何在这段代码中通过自动布局更改视图大小:if (a == true) { //change position }
    • 您可以设置宽度和高度NSLayoutConstraints,然后更改约束上的constant 属性以编辑宽度或高度。但是,如果您只是希望视图根据设备正确定位和调整自身大小,则如果设置正确,则不需要以编程方式更改约束。您是否尝试过在 Interface Builder 中创建 NSLayoutConstraints?
    • 不,我没有。我该怎么做?
    • 看看我的答案中的链接,它涵盖了如何在 IB 中使用 AutoLayout 的基础知识。
    • 我看到了链接,我知道如何基本上使用自动布局,但它没有回答我的问题 - 当我的布尔值为真并且标签必须移动到另一个地方时会发生什么..跨度>
    猜你喜欢
    • 2012-03-23
    • 2015-01-26
    • 2015-08-30
    • 1970-01-01
    • 2015-08-07
    • 1970-01-01
    • 2017-12-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多