【问题标题】:Fit a UIView to screen使 UIView 适合屏幕
【发布时间】:2013-03-12 23:10:32
【问题描述】:

我想为应用程序添加纵向。有没有办法将 UIView(在 xib 中创建)缩小或适合屏幕?

我在 xib 文件中有横向大小的视图,现在想将它们设置为与使用 Interface Builder 拉伸相反(中心块)。

或者这在代码中是可能的吗?

【问题讨论】:

    标签: ios uiview uikit


    【解决方案1】:

    在代码中,您可以使用self.myView.frame = self.view.bounds;。制作就是这样,self.myView.autoresizingMask = UIViewAutoresizingStretchableWidth | UIViewAutoresizingStretchableHeight;

    【讨论】:

    • "坚持下去,self.myView.autoresizingMask = UIViewAutoresizingStretchableWidth | UIViewAutoresizingStretchableHeight;"那会缩水吗?我想要图片的反面。
    • @Helium3 此代码将使视图具有屏幕边界的确切大小。即使在自转之后。
    • 所以两个电话都会?一旦发生旋转,只需在 Orientation 委托方法中调用 self.myView.frame = self.view.bounds ,其他方法可以动态收缩或拉伸到屏幕?
    • 两者一起调用一次,将动态地使视图与屏幕大小一致。仅第一个单独会在没有任何调整属性大小的情况下导致一次性更改。两者协同工作甚至可以为视图大小变化设置动画。
    • 由于视图是从 xib 创建的,您不妨从界面构建器本身设置自动调整大小掩码。实际上整个事情都可以从界面生成器中完成。
    【解决方案2】:

    如果您将此视图添加到 XIB 中的self.view,那么有两种可能性,


    1. 如果您在 XIB 中创建了全尺寸视图,则必须打开所有自动调整大小的蒙版以适应屏幕。
    2. 如果您没有在 nib 中创建全尺寸视图,则必须将此视图的原点设置为 x=0 和 y=0。像您一样设置自动调整大小的蒙版。

    如果您使用代码将此视图添加到self.view,那么您必须手动设置框架。


    【讨论】:

    • 我在代码中设置了框架是的。我不覆盖 UIView,UIViews 链接到 ViewControllers。我将在哪里重置 view.frame 旋转以使动画过渡平滑,还是应该自定义?另外,由于 View 定位结构复杂,我想我需要编写一些“映射”方法来重置所有旋转的帧,对吧?
    • 现在要显示的代码太多了。如果我想从 iPhone 和 iPad 的基于横向的应用程序(每个都有唯一的 UI)转到纵向模式,我更想了解我的下一步行动。纵向模式不是简单的调整大小。我需要更换视图、调整视图大小、删除视图/根据方向显示视图等。
    • 我需要帮助 :) 我尝试使用单独的笔尖并在旋转时加载它们,但它们没有正确加载,而且我有重叠的笔尖视图等。不确定是否更容易构建纵向笔尖并在其上使用调整大小的蒙版,删除我当前拥有的横向笔尖。
    • 请提供屏幕截图以帮助我解决问题
    【解决方案3】:

    Swift 3 的解决方案:

    //define view size
    self.mTableView.frame = self.view.bounds
    //define resizing
    self.mTableView.autoresizingMask = [UIViewAutoresizing.flexibleWidth, UIViewAutoresizing.flexibleHeight]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-18
      • 2016-08-09
      • 1970-01-01
      • 2016-04-22
      • 1970-01-01
      • 1970-01-01
      • 2017-03-22
      • 2012-05-02
      相关资源
      最近更新 更多