Latest 1.6
License MIT
Platforms ios 9.0
Dependencies ColorArt, TLYShyNavBar, IDMPhotoBrowser


This framework allows you to create Apple News-inspired UIViewControllers with ease.

It is heavily inspired by MRArticleViewController, in fact the core is a simple translation of it. However I added some features I thought could be useful.
Preview 1
Preview 2


The layout is shown in the images above, here’s some extra features.


  • [x] The navigation bar shrinks when you scroll down.
  • [x] The image view stretches when the scrollview bounces ( just like Facebook’s Instant Articles).


  • [x] You can set custom fonts for all the text.
  • [x] Supports NSAttributedString in the body.
  • [x] Supports automatic background color and automatic light/dark text color.


LMArticleViewController is available through CocoaPods. Simply add the following line to your Podfile.

pod 'LMArticleViewController'


You can either subclass LMArticleViewController and set the contents in the viewDidLoad: method or instantiate an LMArticleViewController object, set its properties and present it.

Case A: Subclass

- (void)viewDidLoad {

    // Set custom fonts
    // Size doesn't matter here, the super class overrides with default values
    [self setHeadlineFont:[UIFont fontWithName:@"Nexa Bold" size:1]];
    [self setAuthorFont:[UIFont fontWithName:@"Roboto-Regular" size:1]];
    [self setDateFont:[UIFont fontWithName:@"Roboto-Regular" size:1]];

    // Set contents
    self.headline       = self.dataDictionary[k_TITLE];
    self.image          = self.dataDictionary[k_IMAGE];         = self.dataDictionary[k_AUTHOR];
    self.attributedBody = self.dataDictionary[k_BODY];           = self.dataDictionary[k_DATE];

    // IMPORTANT! Setup must happen before [super viewDidLoad]!!
    [super viewDidLoad];


Case B: Init and push

- (void)openArticleWithContents:(NSDictionary *)dataDictionary {

    LMArticleViewController* articleViewController = [[LMArticleViewController alloc]init];

    [articleViewController setBodyFont:[UIFont fontWithName:@"Roboto-Medium" size:1]];

    articleViewController.headline       = dataDictionary[k_TITLE];
    articleViewController.image          = dataDictionary[k_IMAGE];         = dataDictionary[k_AUTHOR];
    articleViewController.attributedBody = dataDictionary[k_BODY];           = dataDictionary[k_DATE];

    [self.navigationController pushViewController:articleViewController animated:YES];

To-Do List

  • [ ] Adjust image view size and proportions.

Latest podspec

    "name": "LMArticleViewController",
    "version": "1.6",
    "summary": "An Objective-C subclass of UIViewController inspired by Apple News",
    "description": "This subclass of UIViewController provides an article view controller with one top image, title, date, author and body labels.",
    "homepage": "",
    "license": {
        "type": "MIT",
        "file": "license.txt"
    "authors": "Luca Mozzarelli",
    "platforms": {
        "ios": "9.0"
    "source": {
        "git": "",
        "tag": "v1.6"
    "source_files": [
    "dependencies": {
        "ColorArt": [],
        "TLYShyNavBar": [],
        "IDMPhotoBrowser": []

Pin It on Pinterest

Share This