PuntoCellulare.it
iOS 6 - Apple rilascia la beta 3 agli sviluppatori, ecco il change-log
17 Luglio 2012 | Max Capitosti
APPLE CERCA

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:




















  • UIView *contentView = [[UIView alloc]

  • initWithFrame:CGRectMake(0,0,contentWidth,contentHeight)];

  • [scrollView addSubview:contentView];

  • // DON'T change contentView's translatesAutoresizingMaskIntoConstraints,

  • // which defaults to YES;


    1. Set the content size of the scroll view to match the size of the content
      view:








  • [scrollView setContentSize:CGMakeSize(contentWidth,contentHeight)];


    1. 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:


    1. 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.
    Prosegui la lettura a pagina 7 >
    SEGUICI SU
    FACEBOOK
    SEGUICI SU
    TELEGRAM
    NOTIZIE CORRELATE
    ULTIME NOTIZIE
      xiaomi mix flipXiaomi Mix Flip - in arrivo a fine mese, in anteprima nuove immaginirealme gt6Realme GT6 - una dotazione differente per la versione per il mercato della Cinaredmi 13 5gRedmi 13 5G - nuovo smartphone con Snapdragon 4 Gen 2 e fotocamera da 108MPreno 12 f 5gOppo lancia i nuovi Reno 12 F 5G e Reno 12 FS 5G in Italiasummer launch eventOnePlus svela nuovi dettagli sulle novità in arrivo il 16 lugliovodafone metaVodafone - insieme a Meta per ottimizzare l'efficienza della retenothing cmf phone 1Nothing CMF Phone 1 - lo smartphone 5G economico con retro personalizzabileoneplus summer launch eventOnePlus svela la gamma di prodotti per il Summer Launch Event del 16 lugliorealme c61Realme C61 - ufficiale il nuovo entry-level con resistenza a polvere e acqua IP54vivo y28s 5gVivo Y28s 5G - ufficiale il nuovo smartphone di fascia mediarealme 12 4gRealme 12 4G - chip Snapdragon 685 e schermo OLED per la nuova variante senza 5Gapple self service repairApple estende il software di diagnostica Self Service Repair in Europa