Yearly Archives: 2012

How to change the background colour of a UIView

You can use the backgroundColor property for this:

Pre-defined values are

  • blackColor
  • darkGrayColor
  • lightGrayColor
  • whiteColor
  • grayColor
  • redColor
  • greenColor
  • blueColor
  • cyanColor
  • yellowColor
  • magentaColor
  • orangeColor
  • purpleColor
  • brownColor
  • clearColor

You can also define your own colours by creating a UIColor object (from RGB or HSL values). Here’s how you can create your own RGB colour and use it with the above example:

RGB and alpha must be defined as CGFloat numbers, i.e. between 0 and 1. The alpha value is the opacity, so 1 is fully visible and 0 is invisible.

How to create an NSString from an NSDate

First we’ll create a date object. Next we’ll create an NSDateFormatter and set how we’d like for display our date (and optionally our time). Then we’ll call the magical stringFromDate method which will create our string.

How to retrieve the current User Locale

The following method will return a two letter code of which language is set on the iOS device in question:

[emember_protected]

There’s a list of language codes on Wikipedia: http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes

Note that to compare the current value against a list of languages you support we need use the isEqualToString method. Here’s an example:

[/emember_protected]

The following articles have helped me figure this out:

How to localize your project in Xcode 4.4

Before we start we need to create a new file called Localizable.strings (from File – New – Resource – Strings File). Xcode needs one file per language. Next we create localized copies of our files:

[emember_protected]

  • head over to your Project Editor (the big blue icon)
  • select it again under Project (another blue icon)
  • make sure INFO is selected
  • find the Localizations box
  • hit the + button to add a language of your choice

Xcode will bring up a dialogue box and suggest files it can translate. Leave them all ticked (or uncheck the ones you don’t need) and hit finish.

Notice that Xcode has now created the translated files underneath the original files: Storyboards and Localizable.strings:

Technically with two languages there are only two files – the first one is just a heading to clarify. Prior to 4.4 Xcode would create a separate folder per language (like en.lproj) and add the files there but that’s not the case anymore.

Storyboard files can be translated “by hand”, whereas string files can be translated using key/value pairs in your Localizable.strings file. Here’s an example: to print the text in a label, instead of

we’d use the following:

In a Localizable.strings file for English we define

and Xcode (or rather the iPhone) will print out this text when our phone is set to English (under Settings – General – International – Language). In the Localizable.strings file for any other language we can define translations with the same key, for example

This would be displayed when the iPhone is set to German.

[/emember_protected]

You can add other translations to files such as Localizable.strings simply by selecting the file on the left, and then adding a translation on the right hand side under “Localizations” in the File Inspector:

How to link to an iOS App

Direct web link to your app or developer account showing all your apps:

Direct link to a country specific app store (say Germany in this exampe):

If your app name contains spaces replace them with dashes. Replace http with imts to avoid Safari redirects on iOS devices. The http links will send web users to a page which asks to open iTunes on their machines.

To link from Objective-C so that the app store app opens automatically:

Alternatively you can use Apple’s Link Maker Tool: http://itunes.apple.com/linkmaker/ – this lets you create buttons like the one below as well as direct links to web pages that look like iTunes:

Poirot for iOS - Pinkstone Pictures Ltd.