我目前正在开发一个 ios 应用程序,范围仅限于 iPhone 和纵向模式。
在每个屏幕中都有图像、按钮、标签和文本字段。这里的问题是,如何从 Images.xcassets 为设备渲染合适的图像?
我现在在做什么,写在下面——
从 Sketch 设计应用程序导出我的 1x、2x 和 3x 图像(由 UI 设计师设计的屏幕)
将它们添加到 Xcode 项目(从 finder 拖放到 xcode)
在 Images.xcassets 中添加新图像集(将其命名为“MyImages”)并将我的图像拖放到 1x、2x、3x。
在 Storyboard中,在 View Controller 上,添加一个 ImageView
对于 ImageView ,从属性检查器中选择图像作为“MyImages”。
完成上述步骤后,当我在从 iphone4s、iphone5、iphone5s、iphone6 等开始的模拟器(Xcode 7.3 上可用的所有模拟器)上测试应用程序时,我没有看到合适的图像被渲染。
我的方法正确吗?
另外,如何调试屏幕上的 UI 元素?比如,我如何/在哪里检查渲染的图像?它的尺寸(宽 X 高)?
添加截图
最佳答案
@Lohith Korupolu:
您提供的屏幕截图适用于通用尺寸 (iPhone/iPad)。从评论中提供的附加信息来看,这会导致AutoLayout 约束问题,这会阻止图像在比 StoryBoard 中显示的屏幕尺寸更小的屏幕上显示。
例如我已经在 Storyboard中复制了您的问题...
这会在 iPhone 4s 的模拟器中产生以下结果....
即有文字,但没有图像。
原因:为较大的“通用”屏幕设置的 autoLayout Constraints 在两个相对侧的任何一侧上都会使图像在较小的屏幕上查看时不可见/消失。
解决方案:
<强>1。在 Storyboard 中清除此选定图像的自动布局约束。看下一张图...
<强>2。添加 AutoLayout 约束如下 x2 图片。 (顶部约束,高度 + 宽度)(在容器中水平)。记得为两者勾选“新约束项”。
<强>3。为 iPhone 4s 运行模拟器...例如
** 其他 iPhone 大小的模拟器 Runs 也会出现同样的情况。 **
****** 所有工作 ******
关于ios - 为不同的iphone设置图像并调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37571739/