ios - 为不同的iphone设置图像并调试

标签 ios iphone swift xcode7 xcasset

我目前正在开发一个 ios 应用程序,范围仅限于 iPhone 和纵向模式。

在每个屏幕中都有图像、按钮、标签和文本字段。这里的问题是,如何从 Images.xcassets 为设备渲染合适的图像?

我现在在做什么,写在下面——

  1. 从 Sketch 设计应用程序导出我的 1x、2x 和 3x 图像(由 UI 设计师设计的屏幕)

  2. 将它们添加到 Xcode 项目(从 finder 拖放到 xcode)

  3. 在 Images.xcassets 中添加新图像集(将其命名为“MyImages”)并将我的图像拖放到 1x、2x、3x。

  4. 在 Storyboard中,在 View Controller 上,添加一个 ImageView

  5. 对于 ImageView ,从属性检查器中选择图像作为“MyImages”。

完成上述步骤后,当我在从 iphone4s、iphone5、iphone5s、iphone6 等开始的模拟器(Xcode 7.3 上可用的所有模拟器)上测试应用程序时,我没有看到合适的图像被渲染。

我的方法正确吗?

另外,如何调试屏幕上的 UI 元素?比如,我如何/在哪里检查渲染的图像?它的尺寸(宽 X 高)?

添加截图

enter image description here

最佳答案

@Lohith Korupolu:

您提供的屏幕截图适用于通用尺寸 (iPhone/iPad)。从评论中提供的附加信息来看,这会导致AutoLayout 约束问题,这会阻止图像在比 StoryBoard 中显示的屏幕尺寸更小的屏幕上显示。

例如我已经在 Storyboard中复制了您的问题...

enter image description here

这会在 iPhone 4s 的模拟器中产生以下结果....

enter image description here

即有文字,但没有图像

原因:为较大的“通用”屏幕设置的 autoLayout Constraints 在两个相对侧的任何一侧上都会使图像在较小的屏幕上查看时不可见/消失。

解决方案:

<强>1。在 Storyboard 中清除此选定图像的自动布局约束。看下一张图... enter image description here

<强>2。添加 AutoLayout 约束如下 x2 图片。 (顶部约束,高度 + 宽度)(在容器中水平)。记得为两者勾选“新约束项”。

enter image description here enter image description here

<强>3。为 iPhone 4s 运行模拟器...例如

enter image description here

** 其他 iPhone 大小的模拟器 Runs 也会出现同样的情况。 **

****** 所有工作 ******

关于ios - 为不同的iphone设置图像并调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37571739/

相关文章:

ios - 泛型类的扩展

iOS 9 启动服务 : ERROR: There is no registered handler for URL scheme itms-services

ios - 在 Swift 中按下取消按钮时,Replaykit 窗口不会消失?

iPhone - try catch EXC_BAD_ACCESS 错误(似乎是僵尸问题)

swift - 从 POST 调用 URLSession 获取内容

Swift - 帮助破译调用堆栈

ios - xcode 子项目缺少依赖目标

ios - 更新 RestKit : loadObjectsAtResourcePath: usingBlock: don't save objects in cache

iPhone SDK : Do I need to ask user for permissions to use GPS?

ios - 我们可以将 NSPointerArray 转换为 Array 吗?