https://github.com/lucamozza/LMArticleViewController
UIViewController subclass to beautifully present news articles and blog posts.
https://github.com/lucamozza/LMArticleViewController
Last synced: 5 months ago
JSON representation
UIViewController subclass to beautifully present news articles and blog posts.
- Host: GitHub
- URL: https://github.com/lucamozza/LMArticleViewController
- Owner: lucamozza
- License: mit
- Archived: true
- Created: 2017-01-29T10:00:35.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2017-04-12T17:56:25.000Z (over 8 years ago)
- Last Synced: 2024-11-18T04:27:05.374Z (about 1 year ago)
- Language: Objective-C
- Homepage:
- Size: 4.32 MB
- Stars: 7
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-ios-star - LMArticleViewController - UIViewController subclass to beautifully present news articles and blog posts. (UI / Font)
- awesome-ios - LMArticleViewController - UIViewController subclass to beautifully present news articles and blog posts. (UI / Font)
README
# LMArticleViewController



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.


## Features
The layout is shown in the images above, here's some extra features.
#### Animations
- [x] The navigation bar shrinks when you scroll down.
- [x] The image view stretches when the scrollview bounces ( just like Facebook's Instant Articles).
#### Appereance
- [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.
## Installation
LMArticleViewController is available through CocoaPods. Simply add the following line to your Podfile.
```ruby
pod 'LMArticleViewController'
```
## Usage
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
```Objective-C
- (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.author = self.dataDictionary[k_AUTHOR];
self.attributedBody = self.dataDictionary[k_BODY];
self.date = self.dataDictionary[k_DATE];
// IMPORTANT! Setup must happen before [super viewDidLoad]!!
[super viewDidLoad];
}
```
#### Case B: Init and push
```Objective-C
- (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];
articleViewController.author = dataDictionary[k_AUTHOR];
articleViewController.attributedBody = dataDictionary[k_BODY];
articleViewController.date = dataDictionary[k_DATE];
[self.navigationController pushViewController:articleViewController animated:YES];
}
```
## To-Do List
- [ ] Adjust image view size and proportions.
[MRArticleViewController]: https://github.com/mrigdon/MRArticleViewController
[ColorArt]: https://github.com/vinhnx/ColorArt
[Chamaleon]: https://github.com/ViccAlexander/Chameleon