我正在尝试为iPhoneX更新我的应用程序,但是没有“ SafeArea”指南。他们只是在情节提要中,而不是在个别笔尖中吗?
故事板中的徽标设置为值28的顶级约束,适用于所有设备.在iPhone X设备上,它与顶部的相机条合并.如果我增加顶部约束,它会影响其他设备.如何仅为iPhone X设置约束?
如果它不是iPhone X,则要隐藏状态栏,如果是iPhone X,则显示状态栏.
最有可能这必须以编程方式完成,因为在plist中没有支持此功能的键(我找到的最接近的是UIStatusBarHidden)
当我在iPhone X中运行该项目时,导航栏上方显示黑色空间,如图所示,而颜色却不一样。

如何解决呢?
我明白我的问题与编程本身没有直接关系,看起来更像是研究.但可能有人可以在这里提出建议.
我对app有一个想法,当用户拍照并且应用程序将分析它并剪切除了所需对象(例如一块布料)之外的每一个并且将其保存在单独的图像中.昨天这是一项非常艰巨的任务,因为开发人员应该创建相当好的神经网络并对其进行教育.但在苹果发布具有真正深度相机的iPhone X之后,一半的问题都可以解决.根据我的理解,开发人员可以更轻松地删除背景,因为iPhone将知道背景的位置.
所以只留下几个问题:
I.带有真正深度相机的iPhone X拍摄的照片格式是什么?是否有可能创建能够使用图片深度信息的神经网络?
II.我已经阅读了有关CoreML的内容,尝试了一些示例,但对我来说仍然不清楚 - 如何在导入CoreML的外部神经网络方面实现以下行为:
神经网络将图像作为输入数据.
NN分析它,在图像上找到所需的对象.
NN不仅返回确定的对象类型,还返回裁剪对象本身或应裁剪区域的坐标/像素数组.
应用程序从NN获取所有必需的信息,并执行必要的操作以裁剪图像并将其保存到另一个文件或其他任何文件.
任何建议将被认真考虑.
我有一个imageview,它位于视图顶部的中央.
这在所有设备上看起来都很好,除了iPhone X的缺口裁剪图像.
有没有一种方法可以从凹槽中定位视图而不是屏幕的顶角?因为它导致我的布局一致性问题
谢谢
以下是启用了安全区域布局指南的限于超级视图的顶部,左侧,右侧和底部的集合视图:
我希望我的收藏视图标题显示在状态栏下。对于iPhone 4-8+的屏幕尺寸,我已经实现了这一点,方法是取消选中控制器main的大小检查器中的“安全区域布局指南”view,并添加以下代码:
collectionView.contentInset = UIEdgeInsets(top: -20, left: 0, bottom: 0, right: 0)
Run Code Online (Sandbox Code Playgroud)
对于非iPhone X视图尺寸,这看起来很棒:
但是,对于iPhone X,这将导致以下输出:
iPhone X在状态栏上有其自己的尺寸。进一步调整顶部插图确实可以,但是会抵消其他设备的尺寸。我想知道是否有一种更优雅的方式来实现此行为。
我有一个集合视图,框架在iPhone X上看起来太高.在其他所有设备上,大小调整和滚动工作正常,如下所示:
但是在iPhone X上,它看起来像这样:
顶行被切断,并且它不会一直向下滚动到最后一行.不知何故,尺寸正确地计算宽度而不是高度,大约70像素太高.(我不担心顶部和底部的条形.我稍后会解决这些问题)
我猜这与iPhone X屏幕的插入调整有关,但我无法弄清楚如何修复它.我在我调整集合视图大小的地方试过这个:
if #available(iOS 11.0, *) {
collectionView.contentInsetAdjustmentBehavior = .always
}
Run Code Online (Sandbox Code Playgroud)
但是,我似乎无法修复它.
编辑:
为了澄清,此菜单的设置如下,屏幕上实际上有两个集合视图.第一个水平滚动,启用分页,以便锁定到每个单元格.其他集合视图是第一个集合视图的单元格,它们是垂直滚动的.我们将调用这些subCollectionViews.
subCollectionViews从原始集合视图接收的尺寸太高了.在故事板上,集合视图的高度相对于顶部栏和底部分页栏定义为刷新.在故事板中,集合视图的高度比运行时计算的高度大约70个像素.
所以对于单元格的布局指南:
override func awakeFromNib() {
cellImage = UIImageView(frame: contentView.frame)
cellImage?.contentMode = .scaleAspectFill
cellImage?.clipsToBounds = true
contentView.addSubview(cellImage!)
}
Run Code Online (Sandbox Code Playgroud)
并为集合视图的布局:
layout.scrollDirection = .vertical
layout.minimumLineSpacing = 8
layout.minimumInteritemSpacing = 8
Run Code Online (Sandbox Code Playgroud)
故事板预设:
我想这就是你们所要求的.如果您需要查看任何内容,请询问.
我刚收到用于开发的iPhone XS,但是在使用它在Android Studio中运行Flutter应用程序时遇到了问题。
当我插入旧的iPhone 6s时,Android Studio会显示出,只是iPhone的正常名称。
但是,当我插入XS时,它显示了这一点,一个巨大的字符串看起来像在显示ideviceinfo的命令行工具。尝试安装应用程序时,这还会导致错误:
Installing and launching...
error: module importing failed: ('invalid syntax', ('temp.py', 1, 27, 'import fruitstrap_00008020-001C50503488002E\n'))
backtrace unavailable
Run Code Online (Sandbox Code Playgroud)
奇怪的是,我仍然可以在Xcode中运行该应用程序。因此,我假设这是一个尚未解决的Android Studio错误。任何人都遇到这样的事情吗?
iphone-x ×10
ios ×6
swift ×3
xcode ×3
autolayout ×2
ios11 ×2
coreml ×1
flutter ×1
iphone ×1
javascript ×1
react-native ×1
resize ×1