iOS – Objective-C snippets

Friday, December 17th, 2010 @ %I:%M %p | Technology

wpid-xcode-2010-12-17-11-38.pngA quick collection of code snippets or the joy of navigating a sometimes quirky SDK.

Setting a pattern as background to an UIView, a category method I added to UIViewController:

– (void)makePatternedBackground {
        UIImage *tile = [UIImage imageNamed:@”viewBackground-tile.png”];
        UIColor *pattern = [[UIColor alloc] initWithPatternImage:tile];
        [self.view setBackgroundColor:pattern];
        [pattern release];

The png image is a 16×16 pixel pattern created in Photoshop.

Rounded corners for images (or any UIView subclass, really). Don’t forget to import QuartzCore.h:

        UIImageView * icon;
        icon.layer.cornerRadius = 10;
        icon.layer.masksToBounds = YES;

Improving code reuse in an universal app for iPhone and iPad. This one has been bothering me for a while. Often you’ll significantly change how you present certain information on an iPad with its much larger real estate than on an iPhone. In that case you do your best MVC separation. Table Views are easy: you take care of the differences in your UITableView subclass. But there are some cases when the views will be largely similar. How then to avoid duplicating everything in two nib files and two UIViewController classes? Make a superclass that does most of the work and which contains all the IBOutlet properties that are the same between the two presentations. Subclass the superclass for iPad and for iPhone, and make a nib file for each. The superclass will have all the manipulation code while the two subclasses only have to take care of the small differences in displaying the view on iPad vs iPhone.

Notifications are your friend! NSNotification and NSNotificationCenter really help with code reuse between iPhone and iPad as well. With iPad’s UISplitView you often have both the table and a detail view representing a table cell’s drill-down visible and active at the same time. The delegate pattern breaks down in this scenario: multiple places in your app are interested in some events at the same time: send NSNotification messages from your data model object and have interested parties add themselves as observers.

And one more on improving code reuse: don’t make your UIViewController class the delegate object and datasource object for UITableViews it contains. Instead put that code in a separate object. Then you can set that object as delegate and datasource to the table in your iPad view and in your iPhone view.



  • Montvale NJ
  • Eroica 2015
  • Kids, guns, whatever.
  • Macintosh turns 30
  • I can now confirm the existence of the Area 50 page
  • Bike commuting, The Prequel
  • Tour of California – Time Trial
  • Portola Valley bike ride
  • Finally cut the cable
  • The Weekend Everybody Smiled

    Comments are closed.

    stretch mark removal products
    Спорт-как способ похудеть ссылка сайт кремлёвской диеты женские сайты диеты как быстро похудеть и накочать мускулы как можно быстро похудеть без проблем рисовая диета для похудения как быстро похудеть, рецепты похудения как похудеть быстро без дееты за 14 дней срочно похудеть с помошью салона красоты в казани как быстро похудеть народные рецепты как похудеть быстро и не мучить себя голодом диеты для снижения веса сайт девчат быстро похудеть на 30 килограмм срочно похудеть на 5 кг. за 10 дней алан кар легкий способ похудеть скачать бесплатно как быстро и безвредно похудеть? как похудеть быстро за месяц 10кг спомощю воды диетхудеем быстро без с упражнениями отзывы средства для похудения хочу быстро легко похудеть быстрый способ похудеть aллен кaрр срочно похудеть за три дня три колограмма быстро похудеть без лекарств худеем быстро после родов ка быстро похудеть делая клизмы сайт диета доктора аткинса легкий способ похудеть от алена карра диета для похудения из куриного мяса танец живота как способ похудеть индивидуальная диета тест худоба ру легкий способ похудеть