iOS 6 소개

iOS 6에는 Xamarin.iOS 6이 C# 개발자에게 제공하는 앱을 개발하기 위한 다양한 새로운 기술이 포함되어 있습니다.

The iOS 6 logo

iOS 6 및 Xamarin.iOS 6을 사용하면 개발자는 이제 i전화 5를 대상으로 하는 애플리케이션을 포함하여 iOS 애플리케이션을 만들 수 있는 풍부한 기능을 사용할 수 있습니다. 이 문서에는 사용할 수 있는 몇 가지 흥미로운 새로운 기능과 각 항목에 대한 문서에 대한 링크가 나열되어 있습니다. 또한 개발자가 iOS 6으로 이동하고 i전화 5의 새로운 해상도로 이동할 때 중요한 몇 가지 변경 사항을 다룹니다.

컬렉션 뷰 소개

컬렉션 뷰를 사용하면 임의의 레이아웃을 사용하여 콘텐츠를 표시할 수 있습니다. 사용자 지정 레이아웃도 지원하면서 그리드와 유사한 레이아웃을 쉽게 만들 수 있습니다. 자세한 내용은 컬렉션 뷰 소개 가이드를 참조 하세요 .

PassKit 소개

PassKit 프레임워크를 사용하면 애플리케이션이 Passbook 앱에서 관리되는 디지털 패스와 상호 작용할 수 있습니다. 자세한 내용은 통과 키트 소개 가이드를 참조 하세요.

EventKit 소개

EventKit 프레임워크는 일정 데이터베이스가 저장하는 일정, 일정 이벤트 및 미리 알림 데이터에 액세스하는 방법을 제공합니다. 일정 및 일정 이벤트에 대한 액세스는 iOS 4부터 사용할 수 있지만 iOS 6은 이제 미리 알림 데이터에 대한 액세스를 노출합니다. 자세한 내용은 EventKit에 대한 Introduction 가이드를 참조하세요.

소셜 프레임워크 소개

소셜 프레임워크는 Twitter 및 Facebook을 비롯한 소셜 네트워크와 상호 작용하기 위한 통합 API뿐만 아니라 중국 사용자를 위한 SinaWeibo를 제공합니다. 자세한 내용은 소셜 프레임워크 소개 가이드를 참조하세요.

StoreKit 변경 내용

Apple은 스토어 키트에서 앱 내에서 iTunes 또는 App Store 콘텐츠 구매 및 다운로드, 앱 내 구매를 위한 콘텐츠 파일 호스팅이라는 두 가지 새로운 기능을 도입했습니다. 자세한 내용은 스토어 키트 변경 가이드를 참조하세요.

기타 변경 내용

ViewWillUnload 및 ViewDidUnload 사용되지 않음

ViewDidUnload 및 메서드 UIViewControllerViewWillUnload 더 이상 iOS 6에서 호출되지 않습니다. 이전 버전의 iOS에서 이러한 메서드는 뷰가 언로드되기 전에 상태를 저장하기 위해 애플리케이션에서 사용되었을 수 있으며 각각 코드를 클린.

예를 들어 Mac용 Visual Studio 아래와 같이 다음과 같은 ReleaseDesignerOutlets메서드를 만들어 다음에서 ViewDidUnload호출합니다.

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

그러나 iOS 6에서는 더 이상 호출 ReleaseDesignerOutlets할 필요가 없습니다.

클린업 코드의 경우 iOS 6 애플리케이션에서 .를 사용해야 DidReceiveMemoryWarning합니다. 그러나 호출 Dispose 하는 코드는 아래와 같이 메모리 집약적 개체에만 사용해야 합니다.

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

다시 말하지만, 위와 같이 호출 Dispose 하는 것은 거의 필요하지 않습니다. 일반적으로 대부분의 애플리케이션은 이벤트 처리기를 제거하는 것입니다.

상태를 저장하는 경우 애플리케이션은 이 ViewWillDisappear 작업을 수행할 수 있습니다 ViewDidDisappearViewWillUnload.

i전화 5 해상도

i전화 5 디바이스에는 640x1136 해상도가 있습니다. 이전 버전의 iOS를 대상으로 한 애플리케이션은 아래와 같이 i전화 5에서 실행될 때 letterboxed로 표시됩니다.

Applications that targeted previous versions of iOS will appear letterboxed when run on an iPhone 5

애플리케이션이 i전화 5에 전체 화면으로 표시되도록 하려면 해상도가 640x1136인 이미지를 Default-568h@2x.png 추가하기만 하면됩니다. 다음 스크린샷은 이 이미지가 포함된 후 실행되는 애플리케이션을 보여줍니다.

This screenshot shows the application running after this image has been included

서브클래싱 UINavigationBar

iOS 6 UINavigationBar 에서는 서브클래스할 수 있습니다. 이렇게 하면 모양과 느낌을 추가로 제어할 UINavigationBar수 있습니다. 예를 들어 애플리케이션은 하위 뷰를 추가하고, 해당 뷰에 애니메이션을 적용하고, 경계를 수정하기 위해 서브클래스를 수행할 수 있습니다 UINavigationBar.

아래 코드는 다음을 추가하는 서브클래스의 UINavigationBar 예를 보여줍니다.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);
​    }
}

서브클래스를 UINavigationBarUINavigationController추가하려면 아래와 같이 형식을 UIToolbar사용하는 UINavigationBar 생성자를 사용합니다UINavigationController.

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

UINavigationBar 하위 클래스를 사용하면 다음 스크린샷과 같이 이미지 보기가 표시됩니다.

Using this UINavigationBar subclass results in the image view being displayed as shown in this screenshot

인터페이스 방향

iOS 6 애플리케이션이 재정 ShouldAutorotateToInterfaceOrientation의되기 전에 특정 컨트롤러가 지원하는 모든 방향에 대해 true를 반환합니다. 예를 들어 다음 코드는 세로만 지원하는 데 사용됩니다.

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

iOS 6 ShouldAutorotateToInterfaceOrientation 에서는 더 이상 사용되지 않습니다. 대신 애플리케이션은 아래와 같이 루트 뷰 컨트롤러에서 재정 GetSupportedInterfaceOrientations 의할 수 있습니다.

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

iPad에서는 구현되지 않은 경우 GetSupportedInterfaceOrientation 네 가지 방향이 모두 기본값으로 설정됩니다. i전화 및 iPod Touch에서 기본값은 을 제외한 PortraitUpsideDown모든 방향입니다.