不同设备的不同设置?

Ted*_*opp 5 iphone settings ipad ios xcode8

我正在开发一个通用的iOS应用程序,它有一些对某些设备毫无意义的设置.具体来说,我想在纵向宽度低于阈值的设备上隐藏用户的某些设置.(例如,某些设置不应在iPhone 7上提供,但应在iPhone 7 Plus上提供.)

我知道可以为iPhone和iPad设备设置不同的设置(如本主题所述),但这不是我想要的.我也熟悉特定大小类的布局,但这似乎不适用于设置.

是否可以根据运行应用程序的设备的尺寸隐藏(或至少禁用)某些设置?

沿着相同的路线,是否可以根据显示尺寸改变设置的默认值?

小智 2

抱歉,但这是不可能的。你是对的,你所能做的就是为 iPad 和 iPhone 提供不同的 settings.bundle 。由于 iOS 4 设置 plist 可以与设备相关:Root~ipad.plist 将在 iPad 上使用,Root~iphone.plist 将在 iPhone 上使用。如果不存在,将使用 Root.plist。

因此,从我的角度来看,您可以使用这两个设置来实现部分目标。对于更具体的情况,您可以在应用程序启动时设置一些默认值。Settings.bundle 无法直接从代码修改,因此您无法删除或禁用特定设置,但您可以将其值更改为特定设备上的某个默认值。Settings.bundle 中的每个项目都与键入配对,NSUserDefaults因此您只需设置值NSUserDefaults,设置应用程序将自动反映这一点。不过,它将保存在其他地方。您可以像处理设置包一样读取它,也可以通过NSUserDefaults.

您可以在此答案中找到代码示例/sf/answers/2285363321/

一个更有趣的选择是使用https://github.com/futuretap/InAppSettingsKit,它将与本机设置界面相同的内容添加到应用程序中。此内部设置与设备设置同步,但您对其有更多控制权。