iOS Информация о версии SDK для iOS 6
Содержание:
Введение
iOS 6 SDK предоставляет поддержку для разработки приложений для iOS, и это включает полный набор инструментов Xcode, компиляторов и платформ для создания приложений для iOS и OS X. Эти инструменты включают XCode IDE и Инструментальный аналитический инструмент среди многих других.
С этим программным обеспечением можно разработать приложения для iPhone, iPad или iPod touch рабочий iOS 6. Можно также протестировать приложения с помощью включенного Средства моделирования iOS, поддерживающего iOS 6. iOS 6 SDK требует компьютера Mac рабочий OS X 10.7.4 или выше (Лев).
Эта версия iOS предназначается для установки только на устройствах, зарегистрированных в Программе Разработчика Apple. Попытка установить эту версию iOS несанкционированным способом могла поместить Ваше устройство в неприменимое состояние.
Для получения дополнительной информации и дополнительные ресурсы поддержки, посетите http://developer .apple.com/programs/ios/.
Создание отчетов ошибки
Для сообщения о любых ошибках, не упомянутых в разделе Notes и Known Issues, используйте Генератор отчетов Ошибки Apple на веб-сайте Разработчика Apple (http://developer .apple.com/bugreporter/). Кроме того, можно обсудить эти вопросы и iOS 6 SDK на Форумах Разработчика Apple (http://devforums .apple.com). Можно получить больше информации о iCloud для Разработчиков в http://developer .apple.com/icloud.
Примечания и известные проблемы
Следующие проблемы касаются использования iOS 6 SDK для разработки кода.
Платформа учетных записей
Запрашивая доступ к учетным записям Facebook, единственный ключ, требуемый в Вашем словаре опций,
ACFacebookAppIdKey.ACFacebookPermissionGroupKeyиACFacebookAppVersionKeyявляются теперь устаревшими.Если Вы запрашиваете разрешение записи под
ACFacebookPermissionsKey, такой какpublish_stream, необходимо обеспечить значение дляACFacebookAudienceKey, который может быть одним изACFacebookAudienceEveryone,ACFacebookAudienceFriends, илиACFacebookAudienceOnlyMe.
Адресная книга
Запрашивать доступ к контактам:
Пользователи в состоянии предоставить или запретить доступа к контактным данным на основе на приложение. Чтобы запросить доступ к контактным данным, вызовите
ABAddressBookRequestAccessWithCompletionфункция после вызоваABAddressBookCreateWithOptionsфункция.ABAddressBookRequestAccessWithCompletionв то время как пользователя просят предоставить или запретить доступа, функция не блокирует приложение. Пока доступ не был предоставлен,ABAddressBookRefобъект не будет содержать контактов и любой попытки изменить сбои контактов с akABOperationNotPermittedByUserErrorошибка. Пользователю предлагают только в первый раз, когда доступ запрашивается; любые последующие вызовы кABAddressBookCreateWithOptionsбудет использовать существующие полномочия. Обработчик завершения вызывают на произвольной очереди. ЕслиABAddressBookRefобъект используется всюду по приложению, тогда все использование должно быть диспетчеризировано той же очереди для использованияABAddressBookRefориентированным на многопотоковое исполнение способом.
Проверка состояния авторизации доступа:
Приложение может использовать состояние API авторизации, чтобы проверить, может ли это получить доступ к контактам, календарям, напоминаниям или фото библиотеке. Этот API независим от доступа запроса API и не предложит пользователю предоставлять или запрещать доступа. С этим API приложение может скорректировать дисплей своих элементов UI, которые получили бы доступ к классу данных. Например, если доступ к контактам авторизовывается или не определяется, то кнопка UI для выбора контакта может быть выведена на экран.
Для Адресной книги вызовите
ABAddressBookGetAuthorizationStatusфункция. Для Набора События вызовитеauthorizationStatusForEntityType:метод классаEKEventStore. Для Библиотеки Активов вызовитеauthorizationStatusметод классаALAssetsLibrary. Значение возвращающихся значений состояния следующие:Состояние авторизации, Не Решительное — пользователь еще не сделал выбор относительно того, может ли это приложение получить доступ к классу данных.
Ограниченное Состояние авторизации — Это приложение не разрешено получить доступ к классу данных. Пользователь не может изменить состояние этого приложения, возможно вследствие активных ограничений, таких как существующий родительский контроль.
Отклоненное Состояние авторизации — пользователь явно запретило доступа к классу данных для этого приложения.
Авторизованное Состояние авторизации — Это приложение разрешено получить доступ к классу данных.
Аудио
Начинаясь в iOS 6, приложения должны иметь клавишу регулировки звука в их
UIBackgroundModesдля использования CoreMIDIMIDISourceCreateиMIDIDestinationCreateфункции. Без набора ключей возвратятся эти функцииkMIDINotPermitted(-10844).
Добрый день
NSNetServiceкласс и CFNetService APIs не включают интерфейсы P2P по умолчанию. Для просмотра зарегистрируйтесь, или службы решения по интерфейсам P2P, приложение должно использовать Добрый деньDNSService*()APIs, отмеченный ниже.Установка interfaceIndex параметра на
kDNSServiceInterfaceIndexAnyв следующем APIs не будет включать интерфейсы P2P по умолчанию. Для включения интерфейсов P2P необходимо теперь установитьkDNSServiceFlagsIncludeP2Pфлаг при использованииkDNSServiceInterfaceIndexAny, или наборinterfaceIndexкkDNSServiceInterfaceIndexP2P. Затронутый APIs:
Базовое изображение
В iOS 6 Базовое Изображение добавляет следующие фильтры к набору, предоставленному в iOS 5:
CIAffineClamp,CIAffineTile,CIBarsSwipeTransition,CIBlendWithMask,CIBloom,CIBumpDistortion,CIBumpDistortionLinear,CICircleSplashDistortion,CICircularScreen,CIColorMap,CIColorPosterize,CICopyMachineTransition,CIDisintegrateWithMaskTransition,CIDissolveTransition,CIDotScreen,CIEightfoldReflectedTile,CIFlashTransition,CIFourfoldReflectedTile,CIFourfoldRotatedTile,CIFourfoldTranslatedTile,CIGaussianBlur,CIGlideReflectedTile,CIGloom,CIHatchedScreen,CIHoleDistortion,CILanczosScaleTransform,CILineScreen,CIMaskToAlpha,CIMaximumComponent,CIMinimumComponent,CIModTransition,CIPerspectiveTile,CIPerspectiveTransform,CIPinchDistortion,CIPixellate,CIRandomGenerator,CISharpenLuminance,CISixfoldReflectedTile,CISixfoldRotatedTile,CISmoothLinearGradient,CIStarShineGenerator,CISwipeTransition,CITriangleKaleidoscope,CITwelvefoldReflectedTile,CIUnsharpMask,CIVortexDistortionТакже в iOS 6, Базовое Изображение позволяет создание
CIImageобъекты, что ссылка Открывает объекты текстуры GL черезimageWithTexture:size:flipped:colorSpace:методCIImageкласс.
Набор события
Запрашивая доступ к календарям или напоминаниям:
Пользователи в состоянии предоставить или запретить доступа к событию и данным напоминания на основе на приложение. Чтобы запросить доступ к событию и/или данным напоминания, вызовите
requestAccessToEntityType:completion:: методEKEventStore. В то время как пользователя просят предоставить или запретить доступа, это не блокирует приложение. Пока доступ не был предоставлен для типа объекта, хранилище события не будет содержать календарей для того типа объекта, и любая попытка сохранить данные перестанет работать.Пользователю предложат только в первый раз, когда доступ запрашивается; любые последующие инстанцирования
EKEventStoreбудет использовать существующие полномочия. Обработчик завершения вызывают на произвольной очереди.
Игровой центр
Приложения только для среды, вызывающие контроллер представления только для портрета (такой как Игровой экран входа в систему Центра) заставят приложение отказывать.
Обходное решение:
Приложения должны обеспечить метод делегата
application:supportedIntefaceOrientationsForWindowи гарантируйте, что портрет является одним из возвращенных значений маски.Когда a
UIBNavigationControllerвключается, подклассUINavigationControllerи переопределениеsupportedInterfaceOrientations.
iCloud
При создании учетной записи iCloud можно использовать любой основанный на электронной почте Apple ID или существующая учетная запись iCloud. Если у Вас была учетная запись MobileMe, которую Вы не перемещали в iCloud, можно использовать тот Apple ID, чтобы заригестрировать новый аккаунт iCloud (ни одни из предыдущих данных MobileMe не будут присутствовать).
icloud.comэлектронное письмо не может быть послано от www.icloud.com. В это время пользователи должны перейти в http://beta .icloud.com, если они хотят использовать веб-браузер для отправки электронного письма от ихicloud.comадрес.
Настройка профилей должна быть включена для iCloud в Портале Настройки iOS. Для включения профиля настройки для iCloud перейдите к разделу App ID Портала Настройки iOS и сконфигурируйте Приложение ID для iCloud. После включения Приложения ID для iCloud регенерируйте свои профили настройки, чтобы включить им для iCloud.
setSortDescriptors:методNSMetadataQueryне поддерживается.В iOS 6 файлы, защищенные через Защиту данных, не могут использоваться с Хранением iCloud APIs.
Имена файлов нечувствительны к регистру в OS X, но чувствительны к регистру в iOS. Это может привести к проблемам при использовании iCloud для совместного использования файлов между этими двумя платформами. На iOS необходимо избежать создавать файлы с именами, отличающимися только случаем.
Поведение скоординированных операций чтения на Документах iCloud изменилось:
В предыдущих выпусках iOS, когда Ваше приложение выполнило скоординированную операцию чтения на файле или пакете и демоне iCloud, заметил, что была более новая версия доступного элемента, скоординированная операция чтения, блокированная, пока более новая версия элемента не была загружена и записана в диск.
С iOS 6 при запуске скоординированной операции чтения на файле или пакете, для которого у Вас уже есть локальная версия, скоординированное чтение предоставят как можно скорее, и новая версия, если таковые имеются, загрузит в фоновом режиме. Этот вызов блокирует для загрузки причин, только если Вы не имеете версию в наличии файла локально.
Кроме того, когда файл конфликтуется, демон iCloud не будет ожидать, пока он не будет иметь всех проигравших конфликта файл, доступный для предоставления доступа к файлу доступным для приложения. Это сделает различные версии противоречивого файла доступными, как только это может. Ваше приложение может использовать существующую координацию файла и
UIDocumentобратные вызовы, которые будут уведомлены, когда проигравшие конфликта были загружены и доступны.
iTunes
iTunes 10.6.3 требуется для iOS 6 SDK.
Предыдущие общедоступные беты iOS больше не могут загружать песни Соответствия iTunes.
Расположение
В бете 4 iOS 6 модификации были представлены новому перечислению
CLActivityTypeв базовом расположении:Замена
CLActivityTypeVehicularNavigationсCLActivityTypeAutomotiveNavigation.Добавить
CLActivityTypeOtherNavigationдля другой автомобильной навигации — например, суда, поезда или плоскости.
Карты
В iOS 6 и позже, Набор Карты основан на новой инфраструктуре, размещенной Apple. Более ранние выпуски iOS будут продолжать использовать службу Google.
Совместимость API будет сохраняться (см. известные проблемы ниже).
Карты теперь поддерживаются в Средстве моделирования.
Данные карты будут продолжать развиваться — только ограниченная сумма спутникового формирования изображений с высокой разрешающей способностью в настоящее время доступна.
Приложения маршрутизации, не указывающие файл покрытия во время разработки, будут всегда выводиться на экран в результатах поиска маршрутизации Карт.
Тестирование и отладка файлов покрытия для приложений маршрутизации только поддерживаются во время разработки через поток операций Выполнения XCode. (Можно указать файл покрытия для данной схемы Run с помощью области Options раздела Run редактора схемы.) Приложения, архивирующиеся и распределяющиеся (за пределами App Store) на устройства, не будут иметь доступа к файлам покрытия приложения.
Разработчики должны рассмотреть свой код для вызовов к
renderInContextна уровне, отступающемMKMapView; отказ сделать так может заставить их приложения отказывать. Если эти вызовы убегаются основной поток, они должны быть устранены или перемещены в основной поток.
Медиапроигрыватель
С iOS 6, если Вы играете видео или аудио в a
UIWebView, необходимо сконфигурировать аудио сеанс правильно так, чтобы аудио не было заставлено замолчать переключателем вызывного устройства. Это поведение соответствует видео и аудио, когда играется с помощью собственных классов.
Сберкнижка
Передачи больше не будут отступать к
background.pngеслиstrip.pngне включен в Ваш пакет передачи.Содержание
userInfoсловарь дляPKPassLibraryDidChangeNotificationизменились в случае удаленных передач. Консультируйтесь с последней документацией для новогоuserInfoсловарь.Передачи должны включать Промежуточный Сертификат WWDR в свою подпись. Передачи, опускающие этот сертификат, недопустимы и не могут быть добавлены к Сберкнижке. Это ограничение не было осуществлено в предыдущих бета-версиях.
Изображения включали в передачи, что использование RGB должно включать альфа-канал.
Безопасность
В iOS 5, подписывая сертификат с подписью MD5 не поддерживается. Гарантируйте, чтобы сертификаты использовали алгоритмы сигнатуры на основе SHA1 или SHA2.
В iOS 6 существуют улучшенные средства управления конфиденциальностью для Календаря, Напоминаний, Контактов и фотографий.
Когда приложение попытается получить доступ к любому из тех типов данных, пользователи будут видеть диалоговые окна доступа. Пользователь может включить и выключить доступ в Настройках> Конфиденциальность.
Разработчики могут установить строку «цели» для каждого класса изолированных данных. iOS выводит на экран эту строку пользователям, чтобы помочь им понять, почему запрашиваются их данные. Эти строки могут быть добавлены с помощью редактора XCode Проекта, который находится на вкладке Info. Соответствующие ключевые имена начинаются со строки “Конфиденциальность -”.
Существуют изменения в платформах Набора и Адресной книги События для помощи разработчикам с этой функцией.
Совместно используемый фото поток
Функция Shared Photo Stream установлена в OFF при обновлении от беты 1 iOS 6 до более позднего выпуска. Настройка по умолчанию должна идти.
Средство моделирования
Никакие предупреждения конфиденциальности не выведены на экран в Средстве моделирования iOS для приложений что фотографии доступа, Контакты, Календарь и Напоминания.
Для этого выпуска Средство моделирования iOS не поддерживает тестирование Закупка В приложении. Используйте устройство для тестирования приложений, использующих эту функцию.
Когда попытка играть MP3 звучит в Средстве моделирования, Вы услышите появляющийся звук вместо этого.
Социальный
Weibo обнаруживается в приложении Настроек, только если включена китайская клавиатура.
requestAccessToAccountsWithType:withCompletionHandler:методACAccountStoreтеперь осуждается. В учетные записи пользователя доступа используйтеrequestAccessToAccountsWithType:options:completion:метод.В параметре опций этого нового метода, передачи
nilполучить доступ к Twitter и учетным записям Weibo. Для доступа к учетным записям Facebook передайте словарь со следующими ключами (которые документируются вACAccountStore.h):Вы больше не должны добавлять этот словарь к своему приложению
Info.plistфайл, как требовался в бете 1.Запрашивая доступ к учетным записям Facebook, единственный ключ, требуемый в Вашем словаре опций,
ACFacebookAppIdKey.ACFacebookPermissionGroupKeyиACFacebookAppVersionKeyявляются теперь устаревшими.Если Вы запрашиваете разрешение записи под
ACFacebookPermissionsKey— такой какpublish_stream— необходимо обеспечить значение дляACFacebookAudienceKey, который может быть одним изACFacebookAudienceEveryone,ACFacebookAudienceFriends, илиACFacebookAudienceOnlyMe.
Строка состояния
Теперь возможно установить параметры оттенка строки состояния в Вашем приложении
Info.plistфайл. Вы могли бы сделать это, чтобы гарантировать, что цвет строки состояния соответствует цвет панели навигации Вашего приложения во время запуска. Для установки оттенка строки состояния добавьтеUIStatusBarTintParametersключ к ВашемуInfo.plistфайл. Значение этого ключа является словарем с надлежащими значениями, описывающими панель навигации, которую Ваше приложение имеет при запуске. В словаре должен бытьUINavigationBarключ, имеющий значение, которое является также словарем. Тот словарь содержит стиль начальной панели навигации (сStyleключ), и указывает, полупрозрачно ли это (сTranslucentключ). Можно также указать цвет оттенка панели навигации (сTintColorключ) или имя его пользовательского фонового изображения (сBackgroundImageключ).
UIKit
В iOS 5.1,
UISplitViewControllerкласс принимает скользящий стиль презентации при представлении левого представления (ранее замеченный только в Почте). Когда представление инициируется или существующим элементом кнопки панели, предоставленным методами делегата или сильно ударить жестом в правильном представлении, этот стиль используется. Никакое дополнительное принятие API не требуется, чтобы получать это поведение и весь существующий APIs — включая тот изUIPopoverControllerэкземпляр, предоставленный делегатом — будет продолжать работать как прежде. Если жест был бы невыносим в Вашем приложении, установивpresentsWithGestureсвойство Вашего разделения просматривает контроллер кNOfalseотключает жест. Однако отключению жеста обескураживают, потому что его использование сохраняет непротиворечивый пользовательский опыт через все приложения.В iOS 6 были представлены изменения так, чтобы Вы больше не устанавливали делегата и реализовывать метод для единственного пальца и устройств распознавания жеста единственного касания. Это заставляет их работать хорошо с
UIControlобъекты.В iOS 6 и позже,
UIWebViewкласс красит свое содержание асинхронно.Авторотация изменяется в iOS 6. В iOS 6,
shouldAutorotateToInterfaceOrientation:методUIViewControllerосуждается. В его месте необходимо использоватьsupportedInterfaceOrientationsForWindow:иshouldAutorotateметоды.Больше ответственности перемещается в приложение и делегата приложения. Теперь, контейнеры iOS (такой как
UINavigationController) не консультируйтесь с их дочерними элементами, чтобы определить, должны ли они самовращаться. По умолчанию приложение и представление поддерживаемые интерфейсные ориентации контроллера установлены вUIInterfaceOrientationMaskAllдля идиомы iPad иUIInterfaceOrientationMaskAllButUpsideDownдля идиомы iPhone.Представление поддерживаемые интерфейсные ориентации контроллера может изменяться в течение долгого времени — даже поддерживаемые интерфейсные ориентации приложения могут изменяться в течение долгого времени. Система спрашивает самый верхний полноэкранный контроллер представления (обычно корневой контроллер представления) для его поддерживаемых интерфейсных ориентаций каждый раз, когда устройство вращается или каждый раз, когда контроллеру представления дарят полноэкранный модальный стиль презентации. Кроме того, поддерживаемые ориентации получены, только если возвращается этот контроллер представления
YEStrueотshouldAutorotateметод. Система пересекает поддерживаемые ориентации контроллера представления с поддерживаемыми ориентациями приложения (как определеноInfo.plistфайл или делегат приложенияapplication:supportedInterfaceOrientationsForWindow:метод), чтобы определить, вращаться ли.Система определяет, поддерживается ли ориентация путем пересечения значения, возвращенного приложением
supportedInterfaceOrientationsForWindow:метод со значением, возвращеннымsupportedInterfaceOrientationsметод самого верхнего полноэкранного контроллера.setStatusBarOrientation:animated:метод не осуждается напрямую. Это теперь работает только еслиsupportedInterfaceOrientationsметод самых верхних полноэкранных возвратов контроллера представления0. Это делает вызывающую сторону ответственной за обеспечение, что ориентация строки состояния является непротиворечивой.
willRotateToInterfaceOrientation:duration:,willAnimateRotationToInterfaceOrientation:duration:, иdidRotateFromInterfaceOrientation:методы больше не вызывают ни на каком контроллере представления, делающем полноэкранное представление по себе — например,presentViewController:animated:completion:.Необходимо удостовериться, что приложения не используют эти методы для управления расположением любых подпредставлений. Вместо этого они должны использовать контроллер представления
viewWillLayoutSubviewsметод и корректирует расположение с помощью прямоугольника границ представления.
В iOS 6,
viewWillUnloadиviewDidUnloadметодыUIViewControllerтеперь осуждаются. При использовании этих методов для выпуска данных, используйтеdidReceiveMemoryWarningметод вместо этого. Можно также использовать этот метод для выпуска ссылок на представление контроллера представления, если это не используется. Необходимо было бы протестировать это, представление не находится в окне прежде, чем сделать это.Это не поддерживается для установки значений для
shadowOffsetилиshadowColorсвойства aUILabelвозразите еслиattributedTextсвойство содержит допустимую приписанную строку. Вместо этого используйтеNSShadowAttributeNameатрибут приписанной строки для установки тени.Вследствие проблем совместимости,
NSBaselineOffsetAttributeNameатрибут больше не поддерживается в iOS 6.NSTextAlignmentNaturalзначение не поддерживается. Это выдаст исключение, когда это будет использоваться сtextAlignmentсвойствоUILabelили предоставляется как параметр выравниванияdrawInRect:withFont:lineBreakMode:alignment:методNSString.setContentStretch:методUIViewбыл осужден. Для достижения того же эффекта используйтеresizableImageWithCapInsets:методUIImageи выведите на экран изображение с aUIImageView.resizableImageWithCapInsets:методUIImageэффективно изменяет размеры изображений путем мозаичного размещения. Как оптимизация производительности, это использует протяжение вместо того, чтобы разместить рядом, когда пользователь не был бы в состоянии сказать различие, такой как тогда, когда расширяются отдельный столбец или строка. Но при определенных обстоятельствах, пользователь мог бы хотеть фактически расширить некоторую область изображения. В iOS 6,resizableImageWithCapInsets:resizingMode:метод позволяет вызывающей стороне указывать мозаичное размещение или протяжение режима изменения размеров.UICollectionViewLayoutкласс изменился:Класс теперь поддерживает настройку анимаций, создаваемых во время вращения. Имена методов для настройки вставляют и удаляют анимации, также изменились, таким образом, те же рычаги могут использоваться для вращений, а также для вставок и удалений.
Класс изменил некоторые имена методов. В частности представления художественного оформления больше не именуются “идентификатором повторного использования”, а скорее “видом элемента”. Приложения, использующие представления художественного оформления, должны будут изменить свой код и быть восстановлены для размещения этого.
Базовый край a
UILabelпредставление теперь отличается от своей базовой линии.Ранее, Автоматическое Расположение интерпретировало нижнюю часть a
UILabelсовпадать с его базовой линией. В то время как удобный во многих случаях, это вызвало проблемы, если Вы хотели поместить главный край одной метки против базового края другого. В таком сценарии нижняя метка перекрыла бы лучший, и подстрочные элементы от главной метки могли врезаться в надстрочные элементы от нижней метки. Теперь, Автоматическое Расположение интерпретируетUILayoutAttributeBottomкак нижняя часть текстового поля (предположение метки не больше, чем ее внутренний размер содержания), иUILayoutAttributeBaselineкак базовая линия текста. Если Вы уже создали код для разметки меток согласно нижней части или центральной точке, Ваш текст переместится немного, и необходимо будет скорректировать ограничения.Приложения с табличными представлениями в их пере или файлах раскадровки, и которые были созданы с помощью предыдущих версий беты iOS 6, потребуют чистой сборки с бетой 3 и более новый.
Вот некоторые примечания относительно Автоматической поддержки Расположения
UIScrollView:В целом Автоматическое Расположение полагает, что вершина, оставленная, нижняя часть и правые края представления, видимые края. Т.е. при прикреплении представления к левому краю его суперпредставления Вы действительно прикрепляете его к минимальному x-значению границ суперпредставления. Изменение источника границ суперпредставления не меняет положение представления.
UIScrollViewкласс прокручивает свое содержание путем изменения источника его границ. Для создания этой работы с Автоматическим Расположением вершина, левая, нижняя часть и правые края в представлении прокрутки теперь, означает края довольного представление.Ограничения на подпредставления представления прокрутки должны привести к размеру для заполнения, который тогда интерпретируется как размер содержания представления прокрутки. (Это не должно быть перепутано с
intrinsicContentSizeметод используется для Автоматического Расположения.) Для калибровки представления прокруткиframeс Автоматическим Расположением ограничения должны или быть явными относительно ширины и высоты представления прокрутки, или края представления прокрутки должны быть связаны к представлениям за пределами его поддерева.Обратите внимание на то, что можно заставить подпредставление из представления прокрутки, казаться, плавать (не, прокручивают) по другому содержанию прокрутки путем создания ограничений между представлением и представлением вне поддерева представления прокрутки, таких как суперпредставление представления прокрутки.
Вот некоторые примеры того, как сконфигурировать представление прокрутки:
Смешанный подход:
Позиция и размер Ваше представление прокрутки с ограничениями, внешними к представлению прокрутки — т.е.
translatesAutoresizingMaskIntoConstraintsсвойство установлено вNOfalse.Создайте плоскость
UIViewдовольный представление для Вашего представления прокрутки, которое будет размером, который Вы хотите, чтобы Ваше содержание имело. Сделайте его подпредставлением представления прокрутки, но позвольте ему продолжать переводить маску автоизменения размеров в ограничения:UIView *contentView = [[UIView alloc]
initWithFrame:CGRectMake(0,0,contentWidth,contentHeight)];
[scrollView addSubview:contentView];
// DON'T change contentView's translatesAutoresizingMaskIntoConstraints,
// which defaults to YES;
Установите размер содержания представления прокрутки для соответствия размера довольного представление:
[scrollView setContentSize:CGMakeSize(contentWidth,contentHeight)];
Создайте представления, Вы хотите вставить довольное представление и сконфигурировать их ограничения, чтобы расположить их в довольном представление.
Также можно создать поддерево представления, чтобы войти в представление прокрутки, установить ограничения и вызвать
systemLayoutSizeFittingSize:метод (сUILayoutFittingCompressedSizeопция) для нахождения размера, Вы хотите использовать для Вашего довольного представление иcontentSizeсвойство представления прокрутки.
Чистый Автоматический подход Расположения:
Набор
translatesAutoresizingMaskIntoConstraintsкNOfalseна всех включенных представлениях.Позиция и размер Ваше представление прокрутки с ограничениями, внешними к представлению прокрутки.
Используйте ограничения для разметки подпредставлений в представлении прокрутки, будучи уверенными, что ограничения связывают со всеми четырьмя краями прокрутки, просматривают и не полагаются на представление прокрутки для получения их размера.
Простым примером было бы большое представление изображения, имеющее внутренний размер содержания, полученный из размера изображения. В
viewDidLoadметод Вашего контроллера представления, Вы включали бы код как следующее:UIScrollView *scrollView = [[UIScrollView alloc] init];
UIImageView *imageView = [[UIImageView alloc] init];
[imageView setImage:[UIImage imageNamed:"MyReallyBigImage"]];
[self.view addSubview:scrollView];
[scrollView addSubview:imageView];
scrollView.translatesAutoresizingMaskIntoConstraints = NO;
imageView.translatesAutoresizingMaskIntoConstraints = NO;
NSDictionary *viewsDictionary = NSDictionaryOfVariableBindings(scrollView,imageView);
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[scrollView]|" options:0 metrics: 0 viewsDictionary:viewsDictionary]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[scrollView]|" options:0 metrics: 0 viewsDictionary:viewsDictionary]];
[scrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[imageView]|" options:0 metrics: 0 viewsDictionary:viewsDictionary]];
[scrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[imageView]|" options:0 metrics: 0 viewsDictionary:viewsDictionary]];
Это высказало бы Вам мнение прокрутки, изменившее размеры как измененное представление контроллера представления (такой как на вращении устройства), и представление изображения будет подпредставлением прокрутки. Вы не должны устанавливать размер содержания представления прокрутки.
Приложения только для среды, вызывающие контроллер представления только для портрета (такой как Игровой экран входа в систему Центра) заставят приложение отказывать.
Обходное решение:
Приложения должны обеспечить метод делегата
application:supportedIntefaceOrientationsForWindowи гарантируйте, что портрет является одним из возвращенных значений маски.Когда a
UIBNavigationControllerвключается, подклассUINavigationControllerи переопределениеsupportedInterfaceOrientations.
WebKit и Safari
WebKit на iOS теперь поддерживает
requestAnimationFrameиcancelAnimationFrameметоды в JavaScript, как описано здесь: http://www .w3.org/TR/animation-timing/.Обратите внимание на то, что, потому что спецификация все еще в Рабочем Черновом состоянии, эти методы имеют
webkitпрефикс, таким образом, ониwindow.webkitRequestAnimationFrameиwindow.webkitCancelAnimationFrame.
Квота кэша приложения по умолчанию увеличилась с 5 МБ до 25 МБ.
Порог подвыборки JPEG увеличился с 2 MP (мегапиксели) к 5 MP на всем поддерживаемом оборудовании кроме iPhone 3GS и iPod touch (четвертое поколение).
Поддержка была добавлена для
<input type="file">теги в веб-формах. Пользователи могут загрузить существующие фотографии и видео от их фото библиотеки или сделать снимок или видео с помощью камеры. Ранее, это управление формой всегда отключалось.С Safari 6.0 на OS X разработчики могут теперь использовать веб-Инспектора (инструмент веб-разработки) с присоединенными устройствами на iOS и Средством моделирования iOS. Разработчики могут использовать веб-Инспектора для отладки Safari и
UIWebViewкласс в их собственных приложениях, созданных и выполненных от XCode. Это заменяет баннер Консоли отладки в Safari.В iOS 6 и позже, веб-данные (веб-Хранение SQL и LocalStorage) от a
UIWebViewобъект может храниться в каталоге, который будет скопирован. Чтобы позволить поддержать эти данные, установитеWebKitStoreWebDataForBackupключ кYEStrueв пользовательских значениях по умолчанию Вашего приложения. Это должно быть сделано, только если Ваше приложение полагается на данные веб-контента, которые не могут быть перезагружены. Если ВашUIWebViewобъект открывает ссылки к произвольному веб-контенту, этот ключ должен быть установлен кNOfalse. Переключение значения этого ключа не сохранит существующие веб-данные представления.В iOS 6 и позже, Safari больше не регистрируется для общего
feed:Схема RSS/ATOM. Приложения, которые могут просмотреть те типы подачи, призваны зарегистрироваться для той схемы URL.WebKit больше всегда создает аппаратно ускоренные уровни для элементов с
-webkit-transform: preserve-3dопция. Авторы должны прекратить использовать эту опцию в качестве способа получить аппаратное ускорение.С iOS 6, встроенный YouTube URLs в форме
http://www.youtube.com/watch?v=oHg5SJYRHA0больше не будет работать. Этот URLs для того, чтобы смотреть видео на сайте YouTube, не для встраивания в веб-страницы. Вместо этого формат, который должен использоваться, описан здесь: https://developers.google.com/youtube/player_parameters.В iOS 6,
keyboardDisplayRequiresUserActionсвойство было добавлено кUIWebViewкласс. Значения по умолчанию свойства кYEStrue, что означает тот вызовfocus()на форме элемент не переведет клавиатуру в рабочее состояние. Путем изменения свойства наNOfalse, вызов JavaScript кfocus()на форме элемент будет фокусировать элемент и переводить клавиатуру в рабочее состояние автоматически.С iOS 6, вызывая
focus()на элементе формы в веб-приложении будет фокусировать элемент.
Copyright © 2015 Apple Inc Все права защищены. Условия использования | Политика конфиденциальности | обновленный: 15.01.2013