Cómo hacer que el UIImage se ajuste a todo el tamaño de la vista UINavigationBar

Necesito configurar la image de background para las barras de UINavigationController de toda la aplicación, así que escribí el siguiente código:

 func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool { let backgroundImage = UIImage(named: "NavBar") UINavigationBar.appearance().setBackgroundImage(backgroundImage, forBarMetrics: .Default) return true } 

Sin embargo, necesito que el UIImage ajuste al tamaño de la barra, porque en mi caso es demasiado grande y no encaja en toda la barra. ¿Cómo puedo hacerlo?

Gracias por adelantado.

Se repetirá automáticamente para completar el tamaño de la barra de navigation, pero si desea que se alargue, puede cambiar el ajuste de las inserciones de corte en el catálogo de activos:

https://developer.apple.com/library/ios/recipes/xcode_help-image_catalog-1.0/chapters/SlicinganImage.html

o en el código algo como esto:

 func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { let backgroundImage = UIImage(named: "NavBar")?.resizableImageWithCapInsets(UIEdgeInsetsMake(0, 15, 0, 15), resizingMode: UIImageResizingMode.Stretch) UINavigationBar.appearance().setBackgroundImage(backgroundImage, forBarMetrics: .Default) return true } 

Puede cambiar fácilmente el tamaño de la vista de Imagen:

 // Set the size hard coded CGRect myFrame = CGRectMake(0,0,320,200); // Or you can get the size from the view CGRect myFrame = backGroundView.frame // Now assign the size to the image, I normally do this is an animation [UIView beginAnimations:NULL context:NULL]; [UIView setAnimationDuration:0.5]; imageView.frame = myFrame; [UIView commitAnimations];