iOS 6 소개Introduction to iOS 6

iOS 6에는 앱을 개발 하기 위한 다양 한 새 기술이 포함 되어 있으며, Xamarin.ios 6 C# 은 개발자에 게 제공 됩니다.iOS 6 includes a variety of new technologies for developing apps, which Xamarin.iOS 6 brings to C# developers.

Ios 6 및 Xamarin.ios 6을 사용 하면 개발자는 iPhone 5를 대상으로 하는 응용 프로그램을 포함 하 여 iOS 응용 프로그램을 만들 수 있는 다양 한 기능이 있습니다.With iOS 6 and Xamarin.iOS 6, developers now have a wealth of capability at their disposal to create iOS applications, including ones that target iPhone 5. 이 문서에서는 사용 가능한 흥미로운 새 기능 중 일부와 각 항목에 대 한 문서에 대 한 링크를 제공 합니다.This document lists some of the more exciting new features that are available and links to articles for each topic. 또한 개발자가 iOS 6으로 이동 하 고 iPhone 5의 새로운 해상도를 사용할 때 중요 한 몇 가지 변경 내용을 다룹니다.In addition it touches on a couple changes that will be important as developers move to iOS 6 and the new resolution of iPhone 5.

컬렉션 뷰 소개Introduction to Collection Views

컬렉션 뷰를 사용 하면 임의의 레이아웃을 사용 하 여 콘텐츠를 표시할 수 있습니다.Collection Views allow content to be displayed using arbitrary layouts. 또한 사용자 지정 레이아웃을 지 원하는 동시에 즉시 표 형태의 레이아웃을 쉽게 만들 수 있습니다.They allow easily creating grid-like layouts out of the box, while supporting custom layouts as well. 자세한 내용은 컬렉션 뷰 소개 가이드[를 참조하세요.For more information see, the Introduction to Collection Views guide.

PassKit 소개Introduction to PassKit

PassKit 프레임 워크를 사용 하면 응용 프로그램이 Passbook 앱에서 관리 되는 디지털 패스와 상호 작용할 수 있습니다.The PassKit framework allows applications to interact with digital passes that are managed in the Passbook app. 자세한 내용은 Pass Kit 소개 가이드를 참조 하세요.For more information see, the Introduction to Pass Kit guide.

EventKit 소개Introduction to EventKit

EventKit 프레임 워크는 일정 데이터베이스에서 저장 하는 일정, 일정 이벤트 및 미리 알림 데이터에 액세스 하는 방법을 제공 합니다.The EventKit framework provides a way to access the Calendars, Calendar Events, and Reminders data that Calendar Database stores. IOS 4부터 달력 및 일정 이벤트에 대 한 액세스를 사용할 수 있었지만 이제 iOS 6은 미리 알림 데이터에 대 한 액세스를 노출 합니다.Access to the calendars and calendar events has been available since iOS 4, but iOS 6 now exposes access to reminders data. 자세한 내용은 I 소개 to eventkit guide를 참조 하세요.For more information, see the I ntroduction to EventKit guide.

소셜 프레임 워크 소개Introduction to the Social Framework

소셜 프레임 워크는 Twitter 및 Facebook을 비롯 한 소셜 네트워크와의 상호 작용을 위한 통합 API 뿐만 아니라 중국의 사용자를 위한 SinaWeibo을 제공 합니다.The Social Framework provides a unified API for interacting with social networks including Twitter and Facebook, as well as SinaWeibo for users in China. 자세한 내용은 소셜 프레임 워크 소개 가이드를 참조 하세요.For more information see, the Introduction to the Social Framework guide.

StoreKit 변경 내용Changes to StoreKit

Apple은 스토어 키트에 두 가지 새로운 기능인 앱 내에서 iTunes 또는 App Store 콘텐츠를 구매 및 다운로드 하 고 앱 내 구매를 위한 콘텐츠 파일을 호스트 하는 두 가지 새로운 기능을 도입 했습니다.Apple has introduced two new features in Store Kit: purchasing and downloading iTunes or App Store content from within your app, and hosting your content files for in-app purchases!. 자세한 내용은 스토어 키트에 대 한 변경 사항 가이드를 참조 하세요.For more information see, the Changes to Store Kit guide.

기타 변경 내용Other Changes

ViewWillUnload 및 ViewDidUnload 사용 되지 않음ViewWillUnload and ViewDidUnload Deprecated

UIViewControllerViewWillUnloadViewDidUnload 메서드는 iOS 6에서 더 이상 호출 되지 않습니다.The ViewWillUnload and ViewDidUnload methods of UIViewController are no longer called in iOS 6. 이전 버전의 iOS에서 이러한 메서드는 응용 프로그램에서 뷰가 언로드 되기 전의 상태를 저장 하는 데 사용 했을 수 있습니다.In previous versions of iOS, these methods may have been used by applications for saving state before a view unloads, and cleanup code respectively.

예를 들어, Mac용 Visual Studio는 아래와 같이 ReleaseDesignerOutlets라는 메서드를 만들어 ViewDidUnload에서 호출 됩니다.For example, Visual Studio for Mac would create a method called ReleaseDesignerOutlets, shown below, which would then be called from ViewDidUnload:

void ReleaseDesignerOutlets ()
{
    if (myOutlet != null) {
        myOutlet.Dispose ();
        myOutlet = null;
    }
}

그러나 iOS 6에서는 더 이상 ReleaseDesignerOutlets를 호출할 필요가 없습니다.However, in iOS 6, it is no longer necessary to call ReleaseDesignerOutlets.

정리 코드의 경우 iOS 6 응용 프로그램은 DidReceiveMemoryWarning를 사용 해야 합니다.For cleanup code, iOS 6 applications should use DidReceiveMemoryWarning. 그러나 Dispose를 호출 하는 코드는 아래와 같이 메모리를 많이 사용 하는 개체에 대해서만 사용 해야 합니다.However, code that calls Dispose should be used sparingly and only for memory intensive objects as shown below:

if (myImageView != null){
    if (myImageView.Superview == null){
        myImageView.Dispose();
        myImageView = null;
    }
}

다시, 위와 같이 Dispose를 호출 하는 것은 거의 필요 하지 않습니다.Again, calling Dispose as above should rarely be needed. 일반적으로 대부분의 응용 프로그램은 이벤트 처리기를 제거 하는 것입니다.In general the most applications should do is to remove event handlers.

상태를 저장 하는 경우 응용 프로그램은 ViewWillUnload대신 ViewWillDisappearViewDidDisappear에서이를 수행할 수 있습니다.For the case of saving state, applications can perform this in ViewWillDisappear and ViewDidDisappear instead of ViewWillUnload.

iPhone 5 해상도iPhone 5 Resolution

iPhone 5 장치에는 640x1136 해상도가 있습니다.iPhone 5 devices have a 640x1136 resolution. 이전 버전의 iOS를 대상으로 하는 응용 프로그램은 아래와 같이 iPhone 5에서 실행 될 때 letterboxed 표시 됩니다.Applications that targeted previous versions of iOS will appear letterboxed when run on an iPhone 5, as shown below:

응용 프로그램이 iPhone 5에서 전체 화면에 표시 되려면 640x1136의 해상도를 가진 Default-568h@2x.png 이라는 이미지를 추가 하기만 하면 됩니다.In order for the application to appear full-screen on iPhone 5, simply add an image named Default-568h@2x.png having a resolution of 640x1136. 다음 스크린샷은이 이미지가 포함 된 후 실행 되는 응용 프로그램을 보여 줍니다.The following screenshot shows the application running after this image has been included:

UINavigationBar 하위 클래스Subclassing UINavigationBar

IOS 6에서는 UINavigationBar 서브클래싱 할 수 있습니다.In iOS 6 UINavigationBar can be subclassed. 이렇게 하면 UINavigationBar의 모양과 느낌을 더욱 세밀 하 게 제어할 수 있습니다.This allows additional control of the look and feel of the UINavigationBar. 예를 들어 응용 프로그램은 하위 뷰를 추가 하 고, 해당 뷰에 애니메이션 효과를 적용 하 고, UINavigationBar범위를 수정할 수 있습니다.For example, applications can subclass to add subviews, animate those views and modify the Bounds of the UINavigationBar.

아래 코드는 UIImageView를 추가 하는 서브클래싱된 UINavigationBar의 예를 보여 줍니다.The code below shows an example of a subclassed UINavigationBar that adds a UIImageView:

public class CustomNavBar : UINavigationBar
{
    UIImageView iv;
    public CustomNavBar (IntPtr h) : base(h)
    {
        iv = new UIImageView (UIImage.FromFile ("monkey.png"));
        iv.Frame = new CGRect (75, 0, 30, 39);
    }
    public override void Draw (RectangleF rect)
    {
        base.Draw (rect);
        TintColor = UIColor.Purple;
        AddSubview (iv);
    }
}

UINavigationController에 서브클래싱된 UINavigationBar를 추가 하려면 아래와 같이 UINavigationBarUIToolbar의 형식을 사용 하는 UINavigationController 생성자를 사용 합니다.To add a subclassed UINavigationBar to a UINavigationController, use the UINavigationController constructor that takes the type of the UINavigationBar and UIToolbar, as shown below:

navController = new UINavigationController (typeof(CustomNavBar), typeof(UIToolbar));

UINavigationBar 하위 클래스를 사용 하면 다음 스크린샷에 표시 된 것 처럼 이미지 뷰가 표시 됩니다.Using this UINavigationBar subclass results in the image view being displayed as shown in the following screenshot:

인터페이스 방향Interface Orientation

IOS 6 응용 프로그램이 ShouldAutorotateToInterfaceOrientation를 재정의 하 고 특정 컨트롤러에서 지 원하는 모든 방향에 대해 true를 반환 합니다.Prior to iOS 6 applications could override ShouldAutorotateToInterfaceOrientation, returning true for any orientations the particular controller supported. 예를 들어 다음 코드는 세로만 지 원하는 데 사용 됩니다.For example, the following code would be used to support only portrait:

public override bool ShouldAutorotateToInterfaceOrientation (UIInterfaceOrientation toInterfaceOrientation)
    {
        return (toInterfaceOrientation == UIInterfaceOrientation.Portrait);
    }

IOS 6 ShouldAutorotateToInterfaceOrientation은 더 이상 사용 되지 않습니다.In iOS 6 ShouldAutorotateToInterfaceOrientation is deprecated. 대신 응용 프로그램은 아래와 같이 루트 뷰 컨트롤러에서 GetSupportedInterfaceOrientations를 재정의할 수 있습니다.Instead applications can override GetSupportedInterfaceOrientations on the root view controller as shown below:

public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations ()
    {
        return UIInterfaceOrientationMask.Portrait;
    }

IPad에서는 GetSupportedInterfaceOrientation 구현 되지 않은 경우이 기본값은 모두 네 방향으로 설정 됩니다.On iPad, this defaults to all four orientations if GetSupportedInterfaceOrientation is not implemented. IPhone 및 iPod Touch에서 기본값은 PortraitUpsideDown를 제외한 모든 방향입니다.On iPhone and iPod Touch, the default is all orientations except PortraitUpsideDown.