`
啸笑天
  • 浏览: 3466948 次
  • 性别: Icon_minigender_1
  • 来自: China
社区版块
存档分类
最新评论

ios8/sdk8/xcode6/iphone6(+)适配

    博客分类:
  • ios
 
阅读更多

酷AppIcon

https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/IconMatrix.html#//apple_ref/doc/uid/TP40006556-CH27-SW1

Table 39-1Size (in pixels) of custom icons and images

Asset

iPhone 6 Plus (@3x)

iPhone 6 and iPhone 5 (@2x)

iPhone 4s (@2x)

iPad and iPad mini (@2x)

iPad 2 and iPad mini (@1x)

App icon (required for all apps)

180 x 180

120 x 120

120 x 120

152 x 152

76 x 76

App icon for the App Store (required for all apps)

1024 x 1024

1024 x 1024

1024 x 1024

1024 x 1024

1024 x 1024

Launch file or image (required for all apps)

Use a launch file (seeLaunch Images)

For iPhone 6, use a launch file (see Launch Images)

For iPhone 5, 640 x 1136

640 x 960

1536 x 2048 (portrait)

2048 x 1536 (landscape)

768 x 1024 (portrait)

1024 x 768 (landscape)

Spotlight search results icon (recommended)

120 x 120

80 x 80

80 x 80

80 x 80

40 x 40

Settings icon (recommended)

87 x 87

58 x 58

58 x 58

58 x 58

29 x 29

Toolbar and navigation bar icon (optional)

About 66 x 66

About 44 x 44

About 44 x 44

About 44 x 44

About 22 x 22

Tab bar icon (optional)

About 75 x 75 (maximum: 144 x 96)

About 50 x 50 (maximum: 96 x 64)

About 50 x 50 (maximum: 96 x 64)

About 50 x 50 (maximum: 96 x 64)

About 25 x 25 (maximum: 48 x 32)

Default Newsstand cover icon for the App Store (required for Newsstand apps)

At least 1024 pixels on the longest edge

At least 1024 pixels on the longest edge

At least 1024 pixels on the longest edge

At least 1024 pixels on the longest edge

At least 512 pixels on the longest edge

Web clip icon (recommended for web apps and websites)

180 x 180

120 x 120

120 x 120

152 x 152

76 x 76

 

 

iphone6/6+ 更新:

Icon-Small@3x.png     87*87

Icon-40@3x.png           120*120

Icon-60@3x.png           180*180

Icon.png                        57*57

Icon@2x.png                114*114

Icon-Small.png                29*29

Icon-Small@2x.png            58*58

Icon-Small-50.png            50*50

Icon-Small-50@2x.png        100*100

Icon-72.png                    72*72

Icon-72@2x.png                144*144

Icon-40.png                    40*40

Icon-40@2x.png                80*80

Icon-60.png                    60*60

Icon-60@2x.png                120*120

Icon-76.png                    76*76

Icon-76@2x.png                152*152

 

 酷LaunchImage

 https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/LaunchImages.html#//apple_ref/doc/uid/TP40006556-CH22-SW1

For iPhone 6

750 x 1334 (@2x) for portrait

1334 x 750 (@2x) for landscape

For iPhone 6 Plus:

1242 x 2208 (@3x) for portrait

2208 x 1242 (@3x) for landscape

---------------------------------------------------------------------

 

4.0 inch screen:

Default-568h@2x.png (old 640x1136 ~ for iPhone 5)

4.0 inch screen: 

LaunchImage-700-568h@2x.png (new 640x1136 ~ for iPhone 5)

 

4.7 inch screen: 

LaunchImage-800-667h@2x.png (750x1334 ~ for iPhone 6)

 

5.5 inch screen: 

LaunchImage-800-Portrait-736h@3x.png (1242x2208 ~ for iPhone 6 Plus Portrait)

5.5 inch screen: 

LaunchImage-800-Landscape-736h@3x.png (2208x1242 ~ for iPhone 6 Plus Landscape)

 

Retina iPad:

Default-Portrait@2x~ipad.png (1536x2048 ~ for Retina  iPad Portrait)

Retina iPad:

Default-Landscape@2x~ipad.png (2048x1536 ~ for Retina  iPad Landscape)

iPad Mini/iPad:

Default-Portrait~ipad.png (768x1024 ~ for  iPad Portrait)

iPad Mini/iPad:

Default-Landscape~ipad.png (1024x768 ~ for  iPad Landscape)

 

酷适配iphone6/6+启动界面

 

如果旧的工程直接跑到这两个模拟器中时,默认是"兼容模式",即系统会简单的把内容等比例放大,显示效果有些模糊但尚可接受。此时App内部获取到的设备分辨率和iPhone5是一样的:320*568 point。

 

启用高分辨率模式有2个方法:

1.添加大屏的LaunchImage:

在Images.xcassets里,删除旧的LaunchImage组,然后新建LaunchImage组,添加对应高分辨率的图片。(参考:http://matthewpalmer.net/blog/2014/09/10/iphone-6-plus-launch-image-adaptive-mode/



 

2.添加Launch Screen File

Launch Screen是Xcode6和iOS8新加的功能,它用一个xib文件来作为启动画面。App在旧版iOS(低于ios8)启动时,该属性会被自动忽略,不会造成异常。

首先,点击New File ->iOS User Interface ->Launch Screen,然后在工程设置项里启用它:

LaunchFile



 不过这个xib不能关联任何的代码(不能自定义View的Class,不能IBOutlet,不能加Object),可以理解成这个xib就是一张截图,这个方案的好处在于可以使用到Size Classes来针对不同屏幕布局这个xib。

 

上面两处设置,只要启用任意一个即可让App进入高分辨率模式;但如果两处都没有设置,则App会回退到兼容模式。

两处都设定的话在ios8会走Launch Screen File,在低于ios8 走LaunchImage

 

PS:iPhone4、iPhone5、iPhone6这几个设备的ppi都是相同的,默认图片优先是@2x。iPhone6 Plus的像素密度更高,默认图片优先是@3x。 另外,iPhone6 Plus有一点和其他设备不同:在App内部获得的屏幕分辨率是1242*2208,但设备实际分辨率是1920*1080,这时系统会把整体的显示内容做一个缩放,downscale到1/1.15。

 

 

 

 

酷 UIPageControl的autoresizingMask

 

在设置UIPageControl实例的宽度时,显示的好像总是设置的四倍左右,但是把其他组建(UILable等)设置在同一父容器中显示的是正常的。头文件看到UIPageControl的autoresizingMask默认值是UIViewAutoresizingNone,但是感觉没起作用,于是这是下

        _mainPageControl.autoresizingMask = UIViewAutoresizingNone;

 UIPageControl显示正确了。(apple的bug?)

 

酷UIActivityViewController crashing on iPads by sdk8

其老早在 https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIActivityViewController_Class/ 中就说了:On iPad, you must present the view controller in a popover. On iPhone and iPod touch, you must present it modally

在sdk8之前你ipad还是用了presentViewController,那在dismissViewControllerAnimated的时候屏幕会旋转下,可能你还能接受,但是在sdk8便会直接crash,报错:

 

2014-10-15 14:03:25.927 BT2014[5133:488272] *** Terminating app due to uncaught exception 'NSGenericException', reason: 'UIPopoverPresentationController (<_UIAlertControllerActionSheetRegularPresentationController: 0x145578890>) should have a non-nil sourceView or barButtonItem set before the presentation occurs.'
*** First throw call stack:
(0x187d9e084 0x1986900e4 0x18cc56bf0 0x18c81e3f8 0x18c81cf30 0x18c5a2efc 0x18c5149c0 0x187d56388 0x187d53314 0x187d536f4 0x187c81664 0x190d7f5a4 0x18c5864f8 0x1000c574c 0x198cfea08)
libc++abi.dylib: terminating with uncaught exception of type NSException
 所以用sdk8编译时ipad用pop,并且用新类:UIPopoverPresentationController

 

 

酷UIActivityViewController

Accessing the Completion Handler
completionHandler
 (iOS 8.0)
The completion handler to execute after the activity view controller is dismissed.

Declaration
OBJECTIVE-C
@property(nonatomic, copy) UIActivityViewControllerCompletionHandler completionHandler
Discussion
When the user-selected service finishes operating on the data, or when the user dismisses the view controller, the view controller executes this completion handler to let your app know the final result of the operation.

Import Statement
Availability
Available in iOS 6.0 and later.

Deprecated in iOS 8.0.

 

酷"LaunchServices: invalidationHandler called" with UIActivityViewController iOS8

In iOS8 when I present or dismiss a UIActivityViewController, my app logs: "LaunchServices: invalidationHandler called"。

参考:https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIPopoverPresentationController_class/index.html

https://devforums.apple.com/message/1049415#1049415

http://stackoverflow.com/questions/25192313/sharing-via-uiactivityviewcontroller-to-twitter-facebook-etc-causing-crash

可能是苹果的issue

 

酷ios sdk8/ios8 remoteNotification 

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

在苹果UIApplication文件中说明:

@interface UIApplication (UIRemoteNotifications)

.

.

.

 

- (void)registerForRemoteNotificationTypes:(UIRemoteNotificationType)types NS_DEPRECATED_IOS(3_0, 8_0, "Please use registerForRemoteNotifications and registerUserNotificationSettings: instead");

 

// Returns the enabled types, also taking into account any systemwide settings; doesn't relate to connectivity.

- (UIRemoteNotificationType)enabledRemoteNotificationTypes NS_DEPRECATED_IOS(3_0, 8_0, "Please use -[UIApplication isRegisteredForRemoteNotifications], or -[UIApplication currentUserNotificationSettings] to retrieve user-enabled remote notification and user notification settings");

 

 

@end

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 

所以在ios8中应该用的新的注册通知的代码:

   // IOS8 新的注册api
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)
    {
        [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings
                                                                             settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge)
                                                                             categories:nil]];
        
        
        [[UIApplication sharedApplication] registerForRemoteNotifications];
    }
    else
    {
        //原来注册通知的代码
        [[UIApplication sharedApplication] registerForRemoteNotificationTypes:
         (UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert)];
    }

 原本在IOS7当中 判断push是否打开的方法是:

UIRemoteNotificationType types = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
return (types & UIRemoteNotificationTypeAlert);

 

如果将这段代码使用在 IOS8当中,虽然不会出现crash的现象,但永远返回空。 在IOS8中,我们使用如下的新代码来取代以上的代码:

+(BOOL)enabledRemoteNotification{
    UIRemoteNotificationType types;
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)
    {
        types = [[UIApplication sharedApplication] currentUserNotificationSettings].types;
    }
    else
    {
        types = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
    }
    
    
    return (types & UIRemoteNotificationTypeAlert);
}

 

酷ios 8 - buttons in horizontal scroll view intercepting pan event - scroll does not work

 含有uibutton的ScrollView在iOS8中无法滚动的解决办法:

theScrollView.panGestureRecognizer.delaysTouchesBegan = theScrollView.delaysContentTouches

 

 

酷IBInspectable / IBDesignable

http://justsee.iteye.com/admin/blogs/2236938

 

酷UIScreen(view.frame)

http://justsee.iteye.com/blog/2154757

 

酷iOS8 notification

 http://justsee.iteye.com/blog/2144285

 

 

  • 大小: 35.2 KB
  • 大小: 40.2 KB
  • 大小: 28.9 KB
分享到:
评论

相关推荐

    libstdc++.6.0.9.tbd

    /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/libstdc++.6.0.9.dylib ...

    14.0真机调试包 安装路径:/应用程序/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/De

    在实际开发中,这样的压缩包可能包含Xcode的更新文件、附加的插件、特定版本的iOS SDK或其他与Xcode 14.0相关的资源。为了更详细地了解这些文件的内容,需要解压并查看具体文件信息。 总的来说,Xcode 14.0真机调试...

    Xcode配置iOS15.5开发包DeviceSupport

    这些文件位于`/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/Developer/SDKs`路径下。通常,当你通过Xcode自动更新到新版本的iOS时,Xcode会自动下载并安装...

    iOS真机调试包13.1.zip

    苹果的Xcode集成开发环境提供了这样的功能,它允许开发者通过USB连接iPhone或iPad,实时查看和修改代码,快速定位并解决问题。 在"iOS真机调试包13.1.zip"中,包含的可能是一系列用于真机调试的工具、证书、配置...

    12.1的ios的xcode包

    【标题】"12.1的iOS的Xcode包"主要指的是针对苹果操作系统iOS 12.1版本的开发工具Xcode的一个特定版本。Xcode是Apple官方为开发者设计的一款集成开发环境(IDE),用于创建iOS、macOS、watchOS以及tvOS的应用程序。...

    iOS 15.0的安装包,在xcode中添加后,可以支持手机的真机调试

    1. **下载iOS SDK**:苹果开发者网站提供了不同版本的Xcode和iOS SDK下载。你需要找到对应iOS 15.0的Xcode版本并下载。请注意,只有注册的苹果开发者才能访问这些资源。 2. **安装Xcode**:双击下载的.dmg文件,...

    最新xcode适配ios11.2配置文件

    本文将深入探讨如何使用最新版的Xcode来适配iOS 11.2(版本号15C107)这一重要的移动操作系统更新。iOS 11.2带来了许多性能改进、新功能以及对现有API的调整,因此开发者需要确保他们的应用能够在这一环境下正常运行...

    Xcode iOS 16真机调试包 开发调试

    6. **测试自动化**:利用Xcode的测试工具,如 XCTest,创建自动化测试套件,确保在不同iOS版本间的兼容性和稳定性。 7. **权限请求**:iOS 16可能会对某些权限的请求方式作出更改,开发者需确保应用的权限请求符合...

    unity3d ios平台,接入第三方sdk

    6. **配置Xcode项目**:在Xcode中,将第三方SDK的库文件(通常是.a静态库或.framework框架)添加到项目中,并确保设置好依赖项和搜索路径。同时,将桥接头文件(LsSdkConector.h)和实现文件(LsSdkConector.m)也...

    iOS 8.2 Xcode开发包

    6. **代码适配**:虽然解决了运行问题,但还需要注意iOS 8.2与后来版本的API差异,确保代码在旧版本系统上的兼容性。 总之,"iOS 8.2 Xcode开发包"是为了帮助开发者在旧版iOS环境下运行和测试应用而准备的资源。...

    xcode配置iOS 13.2 开发包

    将Xcode适配可以调试、编译、运行、打包系统版本号为iOS 13.2 版本的设备,解决"Could not find Developer Disk Image"问题 使用详情 请前往https://blog.csdn.net/u010731949/article/details/52576792

    ios sdk 11.1

    在 `/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/` 这个路径下,你将找到不同版本的iOS设备支持文件,包括iOS 11.1。这些文件使得Xcode能够支持对iOS 11.1设备的模拟和...

    IOS 12.2 SDK包

    **iOS 12.2 SDK包详解** iOS 12.2是苹果公司为iOS操作系统发布的一个重要更新,主要针对开发者提供了丰富的SDK(Software Development Kit,软件开发工具包)资源,便于他们创建、测试和优化应用程序。这个SDK包是...

    iOS16SDK最新SDK

    这个SDK包含了针对iOS 16系统的头文件、库、模拟器支持以及Xcode所需的其他组件,使得开发者能够在低版本的Xcode环境中也能对iOS 16设备进行应用开发和调试。 在iOS 16 SDK中,开发者可以利用一系列新特性和改进来...

    穿山甲ios集成SDK

    3. **适配iOS版本**:确保SDK与应用支持的最低iOS版本兼容,避免因系统版本差异导致的问题。 4. **更新策略**:随着SDK版本的更新,及时跟进并升级,以获取最新的功能和修复。 总的来说,穿山甲iOS集成SDK是开发者...

    xcode16.1真机调试包

    - 连接设备:通过USB将iPhone或iPad等iOS设备连接到开发用的Mac。 - 配置开发者账户:确保已注册Apple Developer Account,以获取真机调试权限。 - 配置设备:在iOS设备上信任开发者证书,允许安装未在App Store...

    ios迷你云SDK

    iOS迷你云SDK会持续适配最新的iOS系统和Xcode版本,确保在不同设备和操作系统上的兼容性。此外,SDK还会定期更新,增加新功能,修复已知问题,以满足开发者和用户的需求。 **7. 社区支持和开发者工具** 开发者可以...

    xcode9 stdc++库

    并将其复制到Xcode 10的相应位置,通常是`/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib`和`/Applications/Xcode.app/Contents/Developer/...

    (0115)-iOS/iPhone/iPAD/iPod源代码-手势交互(Gesture)-Drag And Drop RecycleBin

    9. **适配不同设备**:由于项目适用于iOS设备,包括iPhone、iPad和iPod,开发者需要确保设计和代码能适应各种屏幕尺寸和设备特性。 10. **平台兼容性**:注意项目指定需在Mac环境下解压使用,可能是因为开发工具...

    Xcode7.3 iOS9.3

    至于压缩包中的“9.3 (13E230)”文件,这很可能是iOS 9.3的一个具体版本号,可能包含SDK或固件文件,供开发者在Xcode中模拟或安装到设备进行测试。这些资源可以帮助开发者在没有物理设备的情况下进行仿真测试,或者...

Global site tag (gtag.js) - Google Analytics