gsmilocos

Would you like to react to this message? Create an account in a few clicks or log in to continue.

Share Me


    Learn About The Changes And New Features In The iOS 6 Beta 3 Firmware [Changelog]

    HYPERTEK
    HYPERTEK
    Site Owner
    Site Owner


    Location : Banga Town
    Posts : 3948

    Character sheet
    INCSA:

    Learn About The Changes And New Features In The iOS 6 Beta 3 Firmware [Changelog] Empty Learn About The Changes And New Features In The iOS 6 Beta 3 Firmware [Changelog]

    Post by HYPERTEK Tue Jul 17, 2012 11:27 pm

    According to the update blurb,
    iOS 6 beta 3 was released under the banner of bugfixes and
    improvements, but that’s not to say that there are no new features or
    hints as to the features which Apple is introducing in their next
    releases.

    Learn About The Changes And New Features In The iOS 6 Beta 3 Firmware [Changelog] Screen-shot-2012-07-16-at-10-46-39-am

    9to5Mac
    has spotted interface changes in some of the default apps. Maps now has
    a Settings pages for switching between Miles and Kilometers, toggling
    map labels between English names and names in the local languages,
    choosing between small or large labels, and setting the volume or
    turn-by-turn navigation. The label name support is interesting; perhaps
    it means that there will be support for different languages per
    localization.

    The blog also noticed a change to the bookmarks bar in the iPad’s version of Safari.
    The tabs for history, reading list, and bookmarks have been replaced
    with icons, and there is now an icon which displays the progress of
    syncing lists between Safari browsers.

    The change from labels to icons is an interesting move. On one hand,
    labels are more intuitive for beginners, because they tell the user what
    the button does. Icons are more efficient and usually do not need
    localization, although they take more time to learn.

    For a more in-depth look at technical changes and known issues in iOS
    6, below are the release notes from Apple’s developers portal. These
    notes do not outline the features in iOS 6.
    While these are mostly checks to ensure that the final version of iOS 6
    will be as reliable as Apple products are expected to be, the change
    log does contain a notable tidbit or two. One notable change is the
    release of iCloud email addresses.

    Learn About The Changes And New Features In The iOS 6 Beta 3 Firmware [Changelog] Ax8wnxgcaaaibqe-large

    iOS 6 Beta 3 Build 10A5355d Changelog

    Introduction
    iOS SDK 6.0 provides support for developing iOS apps and includes the
    complete set of Xcode tools, compilers, and frameworks for creating apps
    for iOS and OS X. These tools include the Xcode IDE and the Instruments
    analysis tool among many others.
    With this software you can develop apps that run on iPhone, iPad, or
    iPod touch running iOS 6. You can also test your apps using the included
    iOS Simulator, which supports iOS 6. iOS SDK 6.0 requires a Macintosh computer running OS X 10.7.4 or higher (Lion).
    This version of iOS is intended only for installation on devices
    registered with Apple’s developer program. Attempting to install this
    version of iOS in an unauthorized manner could put your device in an
    unusable state.
    For more information and additional support resources, visit:

    http://developer.apple.com/programs/ios/

    Bug Reporting
    Please report any bugs not mentioned in the “Notes and Known Issues”
    section using the Apple Bug Reporter on the Apple Developer website
    (http://developer.apple.com/bugreporter/). Additionally, you may discuss
    these issues and iOS SDK 6 in the Apple Developer Forums:
    http://devforums.apple.com. You can get more information about iCloud
    for Developers at: http://developer.apple.com/icloud
    Notes and Known Issues
    The following issues relate to using iOS SDK 6.0 to develop code.
    Address Book
    • When an app is in a fresh privacy state and tries to present a
    ABNewPersonViewController, the user cannot dismiss that view controller
    properly even if they allow access to contacts. The user must force quit
    the app and relaunch.
    • Requesting access to contacts:
    Users are able to grant or deny access to contact data on a per-app
    basis. To request access to contact data, call the
    ABAddressBookRequestAccessWithCompletion function after calling the
    ABAddressBookCreateWithOptions function. The
    ABAddressBookRequestAccessWithCompletion function does not block the app
    while the user is being asked to grant or deny access. Until access has
    been granted, the ABAddressBookRef object will not contain any contacts
    and any attempt to modify contacts fails with a
    kABOperationNotPermittedByUserError error. The user is prompted only the
    first time access is requested; any subsequent calls to
    ABAddressBookCreateWithOptions will use the existing permissions. The
    completion handler is called on an arbitrary queue. If the
    ABAddressBookRef object is used throughout the app, then all usage must
    be dispatched to the same queue to use ABAddressBookRef in a thread-safe
    manner.
    • Checking access authorization status:
    An app can use the authorization status API to check if it can access
    contacts, calendars, reminders or photo library. This API is independent
    from the the request access API and will not prompt the user to grant
    or deny access. With this API an app can adjust the display of its UI
    elements that would access the data class. For example, if access to
    contacts is authorized or not determined then a UI button to pick a
    contact can be displayed.
    For Address Book, call the ABAddressBookGetAuthorizationStatus function.
    For Event Kit, call the authorizationStatusForEntityType: class method
    of EKEventStore. For Assets Library, call the authorizationStatus class
    method of ALAssetsLibrary. The meaning of the status values that are
    returned is as follows:
    Authorization Status Not Determined – The user has not yet made a choice regarding whether this app can access the data class.
    Authorization Status Restricted – This app is not authorized to access
    the data class. The user cannot change this app’s status, possibly due
    to active restrictions such as parental controls being in place.
    Authorization Status Denied – The user explicitly denied access to the data class for this app.
    Authorization Status Authorized – This app is authorized to access the data class.
    Apple TV
    • In some cases, the screen may show the wrong resolution. Restart your Apple TV to return it to the correct resolution.
    • FIXED: Netflix videos may not resume where you left off.
    • FIXED: The History list in the YouTube app gets cleared when you exit and reenter the app.
    • Apple TV may be slow to respond while a download is in progress in the background.
    • Apple TV may restart while using the Remote app.
    • Apple TV may restart when changing the system language.
    • Photo Stream does not load when logging in a second time. Restart Apple TV to resolve.
    • Music does not play during photo slideshows.
    • New Behaviors:
    Pick remote speakers in Settings > AirPlay.
    Set an onscreen code for AirPlay in Settings > AirPlay.
    Save multiple iTunes Store accounts in Settings > iTunes Store.
    Press and hold the Select button to rearrange icons on the main menu.
    Hide the main menu icons in Settings > General > Parental Controls.
    Bonjour
    • The NSNetService class and CFNetService APIs do not include P2P
    interfaces by default. To browse, register, or resolve services over P2P
    interfaces, an app needs to use the Bonjour DNSService*() APIs noted
    below.
    • Setting the interfaceIndex parameter to kDNSServiceInterfaceIndexAny
    in the following API’s will not include P2P interfaces by default. To
    include P2P interfaces, you must now set the kDNSServiceFlagsIncludeP2P
    flag when using kDNSServiceInterfaceIndexAny or set the interfaceIndex
    to kDNSServiceInterfaceIndexP2P. The affected APIs are:
    DNSServiceBrowse
    DNSServiceRegister
    DNSServiceResolve
    DNSServiceRegisterRecord
    DNSServiceQueryRecord
    Dictionary
    • There is a known issue with dictionaries when attempting to define a
    word in any language other than English or Japanese. When the reference
    library is presented, the user is presented with the option to download a
    dictionary – that download may not begin. The user can tap outside the
    popover on an iPad or tap the “Done” button on the iPhone or iPod touch
    in order to dismiss the download request.
    Event Kit
    • Requesting access to calendars or reminders:
    Users are able to grant or deny access to event and reminder data on a
    per-app basis. To request access to event and/or reminder data, call the
    requestAccessToEntityType:completion: method of EKEventStore. This will
    not block the app while the user is being asked to grant or deny
    access. Until access has been granted for an entity type, the event
    store will not contain any calendars for that entity type, and any
    attempt to save data will fail.
    The user will only be prompted the first time access is requested; any
    subsequent instantiations of EKEventStore will use the existing
    permissions. The completion handler is called on an arbitrary queue.
    Game Center
    • When creating a new Game Center account in-app on the iPad, the
    popover for selecting the month for your date of birth shows up with no
    content to select.
    • The authenticate method of GKLocalPlayer has been removed.
    Authentication will automatically commence when the completion handler
    is set.
    iCloud
    • When creating an iCloud account, you can use any email based Apple ID,
    or you can use your existing iCloud account. If you had a MobileMe
    account that you have not yet moved to iCloud, you must move it first by
    visiting http://me.com. Moving to iCloud is only available for a
    limited time. Logging into a MobileMe account is not supported in iOS 6.
    icloud.com email addresses are now available for iCloud mail users.
    Users signing up for new Apple IDs, or enabling Mail on their iCloud
    account for the first time, will automatically receive an @icloud.com
    email address instead of a me.com email address. iCloud users with
    @me.com addresses that have been used with iOS 6 beta 3 will receive an
    @icloud.com email address that matches their @me.com address.
    icloud.com email cannot be sent from www.icloud.com. Users should use
    http://beta.icloud.com at this time if they wish to send email from
    their icloud.com address using a web browser.
    • Provisioning profiles must be enabled for iCloud in the iOS
    Provisioning Portal. To enable a provisioning profile for iCloud,
    navigate to the App ID section of the iOS Provisioning Portal and
    configure your App ID for iCloud. After enabling the App ID for iCloud,
    regenerate your provisioning profiles to enable them for iCloud.
    • The setSortDescriptors: method of NSMetadataQuery is not supported.
    • In iOS 6, files that are protected via Data Protection cannot be used with iCloud Storage APIs.
    • File names are case-insensitive in OS X but case-sensitive in iOS.
    This can lead to problems when sharing files between the two platforms
    using iCloud. You should take steps on iOS to avoid creating files whose
    names differ only by case.
    • The behavior of coordinated read operations on iCloud Documents has
    changed. On previous iOS releases, when your app performed a coordinated
    read operation on a file or package, and the iCloud daemon noticed that
    there was a newer version of the item available, the coordinated read
    operation blocked until the newer version of the item was downloaded and
    written to the disk.
Starting in iOS 6 beta 3, when you start a
    coordinated read operation on a file or package for which you already
    have a local version, the coordinated read will be granted as soon as
    possible, and the new version, if any, will download in the background.
    This call will block for downloading reasons only if you do not have any
    version of the file available locally.
Additionally, when the file is
    conflicted, the iCloud daemon will not wait until it has all the
    conflict losers of the file available to make the file available to your
    app. It will make the different versions of the conflicted file
    available as soon as it can. Your app can use the existing file
    coordination and the UIDocument callbacks to be notified when the
    conflict losers have been downloaded and are available.
    iMessage & FaceTime
    • FIXED: The Answer and Decline buttons are missing when receiving calls in landscape orientations.
    iTunes
    • iTunes 10.6.3 is required for iOS SDK 6.0.
    • FIXED: When restoring from an iTunes backup, the device intermittently
    shows up as a new device after rebooting. If that happens, set up the
    device as a “new device” when prompted to restore for the 2nd time. All
    data should have been restored correctly but sync settings including App
    arrangement in iTunes are lost.
    Maps
    • In iOS 6
    and later, Map Kit is built on a new infrastructure hosted by Apple.
    Earlier iOS releases will continue to use Google’s service.
    API compatibility will be maintained (see known issues below).
    Maps are now supported in the Simulator.
    Map data will continue to evolve—only a limited amount of high resolution satellite imagery is currently available.
    • FIXED: If Maps is not running in the background, a “Maps cannot
    connect to the internet” error is displayed when it is launched from a
    3rd party app.
    • FIXED: If Maps has not yet been launched, the current location does not show up when it is launched from a 3rd-party app.
    • Routing apps that do not specify a coverage file during development
    will always be displayed in the Maps routing search results.
    • Testing and debugging of coverage files for routing apps is only
    supported during development through the Xcode “Run” workflow. (You can
    specify the coverage file for a given Run scheme using the Options pane
    of the Run section of the scheme editor.) Apps that are archived and
    distributed (outside of the App Store) onto devices will not have access
    to the app’s coverage files.
    • Maps does not zoom into the current location when launched from a 3rd party app.
    Newsstand
    • Only simple http downloads will work with Newsstand.
    Passbook
    • FIXED: An airplane icon appears between the origin and destination for all transit types.
    • The “Description” field is now a required field for a Pass. All passes
    created without it will fail to validate and will not ingest.
    • FIXED: The Passbook database has been reset. You’ll need to add your passes again.
    • Passbook in the simulator no longer requires https/ssl when using a webServiceURL when ingesting a pass.
    • Unable to show boarding passes on lock screen.
    Reminders
    • FIXED: There are issues when adding and editing reminders in the Reminders app on iPhone devices:
    The Done button is missing when adding a new reminder.
    The app crashes when you tap the Edit button to edit a reminder.
    Security
    • In iOS 5, signing a certificate with an MD5 signature is not
    supported. Please ensure that certificates use signature algorithms
    based on SHA1 or SHA2.
    • In iOS 6, there are improved privacy controls for Calendars, Reminders, Contacts, and Photos.
    Users will see access dialogs when an app tries to access any of those
    data types. The user can switch access on and off in Settings >
    Privacy.
    Developers can set a “purpose” string for each class of isolated data.
    iOS displays this string to users to help them understand why their data
    is being requested. These strings can be added using Xcode’s Project
    editor, in the Info tab. The relevant key names begin with the string
    “Privacy -”.
    There are changes to the Event Kit and Address Book frameworks to help developers with this feature.
    Simulator
    • The app delete confirmation alert panel takes a while to show up in iOS Simulator.
    • FIXED: Tapping the buy button in the view of an SKStoreProductViewController object in iOS Simulator causes the app to crash.
    • No privacy alerts are displayed in iOS Simulator for apps that access Photos, Contacts, Calendar and Reminders.
    • Downloading in-app purchase hosted content in iOS Simulator is not supported.
    • When attempting to play an MP3 sound in the Simulator, you will hear a popping sound instead.
    • FIXED: Using the iOS 5.1 SDK with the iPad (Retina) profile will
    result in a SpringBoard crash. The iOS 5.1 SDK works with all other
    profiles and the iPad (Retina) SDK works with the iOS 6.0 SDK.
    • FIXED: Ads of type ADAdTypeMediumRectangle do not appear in iPad Simulator.
    Shared Photo Stream
    • User must go to Settings > iCloud to ensure that they receive Shared Photo Stream Notifications.
    • In order to share a Photo Stream with iOS 6 beta, you must invite
    someone using their iCloud email address or they will not receive the
    invitation.
    • Upgrading from iOS 6 beta 1 to beta 2 will cause your device to re-download all of your Shared Photo Streams.
    • The Shared Photo Stream feature is set to OFF when updating from iOS 6
    beta 1 to a later release. The default setting should be ON.
    • Turning off Shared Photo Streams may leave camera in an unresponsive state, force quitting camera will resolve this issue.
    Social
    • Weibo shows up in the Settings app only if a Chinese keyboard is enabled.
    • The requestAccessToAccountsWithType:withCompletionHandler: method of
    ACAccountStore is now deprecated. To access user accounts, please use
    the requestAccessToAccountsWithType:options:completion: method. In the
    options parameter of this new method, pass nil to access Twitter and
    Weibo accounts. To access Facebook accounts, pass a dictionary with the
    following keys (which are documented in ACAccountStore.h):
    ACFacebookAppIdKey
    ACFacebookPermissionsKey
    ACFacebookPermissionGroupKey
    • You should no longer add this dictionary to your app’s Info.plist file, as was required in beta 1.
    SpringBoard
    • FIXED: After restoring a device in iTunes or performing an “Erase All
    Contents and Settings”, the current wallpaper may not appear until the
    device is rebooted once.
    Status Bar
    • It is now possible to set status bar tint parameters in your app’s
    Info.plist file. You might do this to ensure that the status bar color
    matches the navigation bar color of your app during startup. To set the
    status bar tint, add the UIStatusBarTintParameters key to your
    Info.plist file. The value of this key is a dictionary with the
    appropriate values describing the navigation bar your app has at startup
    time. Inside the dictionary should be the UINavigationBar key, whose
    value is also a dictionary. That dictionary contains the initial
    navigation bar’s style (with the Style key) and whether it’s translucent
    (with the Translucent key). If your navigation bar uses them, you can
    also specify its tint color (with the TintColor key), or the name of its
    custom background image (with the BackgroundImage key).
    UIKit
    • In iOS 5.1, the UISplitViewController class adopts the sliding
    presentation style when presenting the left view (previously only seen
    in Mail). This style is used when presentation is initiated either by
    the existing bar button item provided by the delegate methods or by a
    swipe gesture within the right view. No additional API adoption is
    required to obtain this behavior, and all existing API, including that
    of the UIPopoverController instance provided by the delegate, will
    continue to work as before. If the gesture would be insupportable in
    your app, setting the presentsWithGesture property of your split view
    controller to NO disables the gesture. However, disabling the gesture is
    discouraged because its use preserves a consistent user experience
    across all apps.
    • FIXED: In iOS 6, changes have been introduced so that you no longer
    need to set a delegate and implement a method for Single-Finger and
    Single-Tap gesture recognizers, in an effort to make them work well with
    the UIControl objects.
    • In iOS 6 and later, the UIWebView class paints its contents asynchronously.
    • FIXED: Developers trying out Auto Layout with UIScrollView objects
    might notice jitters in the scroll indicators on devices with Retina
    displays.
    • Autorotation is changing in iOS 6. In iOS 6, the
    shouldAutorotateToInterfaceOrientation: method of UIViewController is
    deprecated. In its place, you should use the
    supportedInterfaceOrientations and shouldAutorotate methods.
    More responsibility is moving to the app and the app delegate. Now, iOS
    containers (such as UINavigationController) do not consult their
    children to determine whether they should autorotate. By default, an app
    and a view controller’s supported interface orientations are set to
    UIInterfaceOrientationMaskAll for the iPad idiom and
    UIInterfaceOrientationMaskAllButUpsideDown for the iPhone idiom.
    A view controller’s supported interface orientations can change over
    time. Even an app’s supported interface orientations can change over
    time. The system asks both the topmost full screen view controller
    (typically the root view controller) for its supported interface
    orientations whenever the device rotates or whenever a view controller
    is presented with the full screen modal presentation style. Moreover the
    supported orientations are retrieved only if this view controller
    returns YES from its shouldAutorotate method. The system intersects the
    view controller’s supported orientations with the app’s supported
    orientations (as determined by the Info.plist file or the app delegate’s
    application:supportedInterfaceOrientationsForWindow: method) to
    determine whether to rotate.
    The system determines if an orientation is supported by intersecting the
    value returned by the app’s supportedInterfaceOrientationsForWindow:
    method with the value returned by the supportedInterfaceOrientations
    method of the topmost fullscreen controller.
    The setStatusBarOrientation:animated: method is not deprecated outright.
    However it now works only if the supportedInterfaceOrientations method
    of the topmost full screen view controller returns 0. This puts the
    responsibility of ensuring that the status bar orientation is consistent
    into the hands of the caller.
    For compatibility, view controllers that still implement the
    shouldAutorotateToInterfaceOrientation: method do not get the new
    autorotation behaviors. (In other words, they do not fall back to using
    the app, app delegate, or Info.plist file to determine the supported
    orientations.) Instead, the shouldAutorotateToInterfaceOrientation:
    method used to synthesize the information that would be returned by the
    supportedInterfaceOrientations method.
    • FIXED: In certain situations, the Auto Layout system might not engage
    automatically for a view. To workaround this problem, override the
    requiresConstraintBasedLayout class method in your view and return YES
    from your implementation.
    • The willRotateToInterfaceOrientation:duration:,
    willAnimateRotationToInterfaceOrientation:duration:, and
    didRotateFromInterfaceOrientation: methods are no longer called on any
    view controller that makes a full screen presentation over itself—for
    example, by calling presentViewController:animated:completion:.
    You should make sure that your apps are not using these methods to
    manage the layout of any subviews. Instead, they should use the view
    controller’s viewWillLayoutSubviews method and adjust the layout using
    the view’s bounds rectangle.
    • In iOS 6, the viewWillUnload and viewDidUnload methods of
    UIViewController are now deprecated. If you were using these methods to
    release data, use the didReceiveMemoryWarning method instead. You can
    also use this method to release references to the view controller’s view
    if it is not being used. You would need to test that the view is not in
    a window before doing this.
    • FIXED: Calling any of the attributed string drawing methods without
    specifying a value for the NSFontAttributeName attribute is likely to
    throw an exception. The workaround is to set a value for the
    NSFontAttributeName key before drawing or sizing an NSAttributedString
    object.
    • Setting values for the shadowOffset or shadowColor properties of a
    UILabel object, whose attributedText property contains a valid
    attributed string, is unsupported. Use the NSShadowAttributeName
    attribute of the attributed string to set the shadow instead.
    • Due to compatibility concerns, the NSBaselineOffsetAttributeName attribute is no longer supported in iOS 6.
    • The NSTextAlignmentNatural value is unsupported and will throw an
    exception when used with the textAlignment property of UILabel or
    supplied as the alignment parameter to the
    drawInRect:withFont:lineBreakMode:alignment: method of NSString.
    • The setContentStretch: method of UIView has been deprecated in this
    beta release. To achieve the same effect, use the
    resizableImageWithCapInsets: method of UIImage and display the image
    with a UIImageView.
    • The resizableImageWithCapInsets: method of UIImage effectively resizes
    images by tiling. As a performance optimization, it uses stretching
    rather than tiling when the user would not be able to tell the
    difference, like when a single column or row is being stretched. But in
    certain circumstances, one might want to actually stretch some region of
    an image. In iOS 6, the resizableImageWithCapInsets:resizingMode:
    method allows the caller to specify a tiling or stretching resizing
    mode.
    • The UICollectionViewLayout class has changed:
    The class now supports the customization of the animations created
    during rotation. The names of methods for customizing insert and delete
    animations have also changed so that the same hooks can be used for
    rotations as well as for insertions and deletions.
    The class has changed some method names. Specifically, decoration views
    are no longer referred to by “reuse identifier” but rather by “element
    kind.” Apps that are using decoration views will need to modify their
    code and rebuild to accommodate this.
    • FIXED: In iOS 6, a bug was fixed where UIWebView.isLoading was set to
    NO before the main frame finished loading. Now, UIWebView.isLoading is
    set to NO when the main frame is done loading.
    • The bottom edge of a UILabel view is now different from its
    baseline.Previously, auto layout was interpreting the bottom of a
    UILabel to be the same as its baseline. While convenient in many cases,
    it caused problems if you wanted to place the top edge of one label
    against the bottom edge of another. In such a scenario, the bottom label
    would overlap the top one, and descenders from the top label could
    crash into ascenders from the bottom label. Now, auto layout interprets
    UILayoutAttributeBottom as the bottom of the text box (presuming the
    label is not bigger than its intrinsic content size), and
    UILayoutAttributeBaseline as the baseline of the text. If you have
    already created code for laying out labels according to the bottom or
    center point, your text will move around a little and you will need to
    adjust your constraints.
    • Apps with table views in their nib or storyboard files, and that were
    built using previous versions of iOS 6 beta, will require a clean build
    with beta 3 and newer.
    • Here are some notes regarding auto layout support for UIScrollView:
    In general, auto layout considers the top, left, bottom, and right edges
    of a view to be the visible edges. That is, if you pin a view to the
    left edge of its superview, you’re really pinning it to the minimum
    x-value of the superview’s bounds. Changing the bounds origin of the
    superview does not change the position of the view.
    The UIScrollView class scrolls its content by changing the origin of its
    bounds. To make this work with auto layout, the meaning of the top,
    left, bottom, and right edges within a scroll view now mean the edges of
    its content view.
    The constraints on the subviews of the scroll view must result in a size
    to fill, which is then interpreted as the content size of the scroll
    view. (This should not be confused with the intrinsicContentSize method
    used for auto layout.) To size the scroll view’s frame with auto layout,
    constraints must either be explicit regarding the width and height of
    the scroll view or the edges of the scroll view must be tied to views
    outside of its subtree.
    Note that you can make a subview of the scroll view appear to float (not
    scroll) over the other scrolling content by creating constraints
    between the view and a view outside the scroll view’s subtree, such as
    the scroll view’s superview.
    Here are some examples of how to configure the scroll view:
    Mixed approach:
    1. Position and size your scroll view with constraints external to the
    scroll view—that is, the translatesAutoresizingMaskIntoConstraints
    property is set to NO.
    2. Create a plain UIView content view for your scroll view that will be
    the size that you want your content to have. Make it a subview of the
    scroll view but let it continue to translate the autoresizing mask into
    constraints:
    3. UIView *contentView = [[UIView alloc]
    4. initWithFrame:CGRectMake(0,0,contentWidth,contentHeight)];
    5. [scrollView addSubview:contentView];
    6. // DON’T change contentView’s translatesAutoresizingMaskIntoConstraints,
    7. // which defaults to YES;
    8.
    9. Set the content size of the scroll view to match the size of the content view:
    10. [scrollView setContentSize:CGMakeSize(contentWidth,contentHeight)];
    11.
    12. Create the views you want to put inside the content view and
    configure their constraints so as to position them within the content
    view.Alternatively, you can create a view subtree to go in the scroll
    view, set up your constraints, and call the systemLayoutSizeFittingSize:
    method (with the UILayoutFittingCompressedSize option) to find the size
    you want to use for your content view’s size and the contentSize
    property of the scroll view.
    Pure auto layout approach:
    1. In this case translatesAutoresizingMaskIntoConstraints must be set to NO on all views involved.
    2. Position and size your scroll view with constraints external to the scroll view.
    3. Use constraints to lay out the subviews within the scroll view, being
    sure that the constraints tie to all four edges of the scroll view and
    do not rely on the scroll view to get their size.A simple example would
    be a large image view, which has an intrinsic content size derived from
    the size of the image. In the viewDidLoad method of your view
    controller, you would include code like the following:
    4. UIScrollView *scrollView = [[UIScrollView alloc] init];
    5. UIImageView *imageView = [[UIImageView alloc] init];
    6. [imageView setImage:[UIImage imageNamed:"MyReallyBigImage"]];
    7. [self.view addSubview:scrollView];
    8. [scrollView addSubview:imageView];
    9.
    10. scrollView.translatesAutoresizingMaskIntoConstraints = NO;
    11. imageView.translatesAutoresizingMaskIntoConstraints = NO;
    12.
    13. NSDictionary *viewsDictionary = NSDictionaryOfVariableBindings(scrollView,imageView);
    14. [self.view addConstraints:[NSLayoutConstraint
    constraintsWithVisualFormat:@"H:|[scrollView]|” options:0 metrics: 0
    viewsDictionary:viewsDictionary]];
    15. [self.view addConstraints:[NSLayoutConstraint
    constraintsWithVisualFormat:@"V:|[scrollView]|” options:0 metrics: 0
    viewsDictionary:viewsDictionary]];
    16. [scrollView addConstraints:[NSLayoutConstraint
    constraintsWithVisualFormat:@"H:|[imageView]|” options:0 metrics: 0
    viewsDictionary:viewsDictionary]];
    17. [scrollView addConstraints:[NSLayoutConstraint
    constraintsWithVisualFormat:@"V:|[imageView]|” options:0 metrics: 0
    viewsDictionary:viewsDictionary]];
    18. 
This would give you a scroll view that resized as the view
    controller’s view resized (such as on device rotation), and the image
    view would be a scrolling subview. You don’t have to set the content
    size of the scroll view.
    Safari & WebKit
    • WebKit on iOS now supports the requestAnimationFrame and
    cancelAnimationFrame methods in JavaScript, as described here
    http://www.w3.org/TR/animation-timing/.
    Note that because the specification is still at the Working Draft state,
    these methods have the webkit prefix, so they are
    window.webkitRequestAnimationFrame, window.webkitCancelAnimationFrame.
    • The default app cache quota has been increased from 5MB to 25MB.
    • The JPEG subsampling threshold was increased from 2 MP (megapixels) to
    5 MP on all supported hardware except iPhone 3GS and iPod touch (4th
    gen).
    • Support has been added for tags in web
    forms. Users can upload existing photos and videos from their photo
    library or take a picture or video using the camera. Previously this
    form control was always disabled.
    • With Safari 6.0 on OS X, developers can now use the Web Inspector (web
    development tool) with attached iOS devices and iOS Simulator.
    Developers can use the Web Inspector to debug Safari and the UIWebView
    class in their own apps built and run from Xcode. This replaces the
    Debug Console banner in Safari.
    • In iOS 6 and later, web data (SQL Web Storage and LocalStorage) from a
    UIWebView object can be stored in a directory that will be backed up.
    To enable backing up this data, set the WebKitStoreWebDataForBackup key
    to YES in your app’s user defaults. This should be done only if your app
    relies on web content data that cannot be reloaded. If your UIWebView
    object opens links to arbitrary web content, this key should be set to
    NO. Toggling the value of this key will not preserve existing web view
    data.
    • In iOS 6 and later, Safari no longer registers for the common feed:
    RSS/ATOM scheme. Apps that can view those types of feeds are encouraged
    to register for that URL scheme.
    • WebKit no longer always creates hardware-accelerated layers for
    elements with the -webkit-transform: preserve-3d option. Authors should
    stop using this option as a way to get hardware acceleration.
    • Experimental CSS3 Flexbox support will be disabled. Please switch from
    using -webkit-flexbox and -webkit-inline-flexbox to -webkit-box and
    -webkit-inline-box.
    • As of iOS 6, embedded YouTube URLs in the form of
    https://www.youtube.com/watch?v=oHg5SJYRHA0 will no longer work. These
    URLs are for viewing the video on the YouTube site, not for embedding in
    web pages. Instead, the format that should be used is described in
    https://developers.google.com/youtube/player_parameters.
    • In iOS 6, the keyboardDisplayRequiresUserAction property was added to
    the UIWebView class. The property defaults to YES, which means that
    calling focus() on a form element will not bring up the keyboard. By
    changing the property to NO, a JavaScript call to focus() on a form
    element will focus the element and automatically bring up the keyboard.
    • As of iOS 6, calling focus() on a form element in a web app will focus the element.
    Are you waiting for the full release of iOS 6, or did you get your hands on the most recent beta?

      Current date/time is Fri Nov 15, 2024 8:06 pm