Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
iOS 6 включает различные новые технологии для разработки приложений, которые Xamarin.iOS 6 приносит разработчикам C#.
С iOS 6 и Xamarin.iOS 6 разработчики теперь имеют множество возможностей для создания приложений iOS, включая те, которые предназначены для iPhone 5. В этом документе перечислены некоторые из более интересных новых функций, доступных и ссылок на статьи для каждого раздела. Кроме того, он касается нескольких изменений, которые будут важны, как разработчики переходят на iOS 6 и новое разрешение iPhone 5.
Общие сведения о представлениях коллекции
Представления коллекции позволяют отображать содержимое с помощью произвольных макетов. Они позволяют легко создавать макеты, такие как сетка из поля, а также поддерживают пользовательские макеты. Дополнительные сведения см. в руководстве по представлению коллекций .
Введение в PassKit
Платформа PassKit позволяет приложениям взаимодействовать с цифровыми проходами, управляемыми в приложении Passbook. Дополнительные сведения см. в руководстве по пакету pass kit.
Общие сведения о EventKit
Платформа EventKit предоставляет способ доступа к данным календарей, событий календаря и напоминаний, которые хранятся в базе данных календаря. Доступ к календарям и событиям календаря доступен с iOS 4, но iOS 6 теперь предоставляет доступ к данным напоминаний. Дополнительные сведения см. в руководстве по I ntroduction to EventKit .
Общие сведения о социальной платформе
Social Framework предоставляет единый API для взаимодействия с социальными сетями, включая Twitter и Facebook, а также SinaWeibo для пользователей в Китае. Дополнительные сведения см. в руководстве по социальной платформе .
Изменения в StoreKit
Apple представила две новые функции в Store Kit: приобретение и скачивание содержимого iTunes или App Store из приложения и размещение файлов содержимого для покупок в приложении!. Дополнительные сведения см. в руководстве по изменению комплекта для магазина.
Другие изменения
ViewWillUnload и ViewDidUnload устарели
Методы ViewWillUnload и ViewDidUnload методы UIViewController больше не вызываются в iOS 6. В предыдущих версиях iOS эти методы могут использоваться приложениями для сохранения состояния перед выгрузкой представления и кодом очистки соответственно.
Например, Visual Studio для Mac создаст метод с именем ReleaseDesignerOutletsниже, который затем будет вызываться изViewDidUnload:
void ReleaseDesignerOutlets ()
{
if (myOutlet != null) {
myOutlet.Dispose ();
myOutlet = null;
}
}
Однако в iOS 6 больше не требуется вызывать ReleaseDesignerOutlets.
Для кода очистки следует использовать DidReceiveMemoryWarningприложения iOS 6. Однако код, который вызывает Dispose , следует использовать экономно и только для объектов с интенсивным объемом памяти, как показано ниже:
if (myImageView != null){
if (myImageView.Superview == null){
myImageView.Dispose();
myImageView = null;
}
}
Опять же, вызов Dispose , как описано выше, редко требуется. Как правило, большинство приложений должны выполняться для удаления обработчиков событий.
В случае сохранения состояния приложения могут выполнять это ViewWillDisappear и ViewDidDisappear вместо ViewWillUnloadнего.
Разрешение iPhone 5
Устройства iPhone 5 имеют разрешение 640x1136. Приложения, предназначенные для предыдущих версий iOS, будут отображаться в почтовом ящике при запуске на iPhone 5, как показано ниже:
Чтобы приложение отображалось в полноэкранном режиме на iPhone 5, просто добавьте изображение Default-568h@2x.png с разрешением 640x1136. На следующем снимку экрана показана работа приложения после включения этого образа:
Подклассирование 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);
}
}
Чтобы добавить подкласс UINavigationBar в объект UINavigationController, используйте UINavigationController конструктор, который принимает тип UINavigationBar и UIToolbar, как показано ниже:
navController = new UINavigationController (typeof(CustomNavBar), typeof(UIToolbar));
Использование этого UINavigationBar подкласса приводит к отображению представления изображения, как показано на следующем снимке экрана:
Ориентация интерфейса
До приложений 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 она не реализована. На iPhone и iPod Touch по умолчанию используется все ориентации, кроме PortraitUpsideDown.



