LMArticleViewController 1.6

LMArticleViewController 1.6

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2017年4月

Luca Mozzarelli 维护。



 
依赖项
ColorArt>= 0
TLYShyNavBar>= 0
IDMPhotoBrowser>= 0
 

  • Luca Mozzarelli

此框架允许您轻松创建类似 Apple News 的 UIViewControllers。

它深受 MRArticleViewController 的启发,实际上其核心是对它的简单翻译。然而,我添加了一些我认为可能有用的功能。 预览 1

Preview 2

功能

布局如上图所示,这里还有一些额外的功能。

动画

  • [x] 滚动时导航栏会缩小。
  • [x] 当滚动视图回弹时,图片视图会拉伸(就像 Facebook 的 Instant Articles)。

外观

  • [x] 您可以为所有文本设置自定义字体。
  • [x] 支持正文中的 NSAttributedString
  • [x] 支持自动背景颜色和自动明亮/暗色文本颜色。

安装

LMArticleViewController 通过 CocoaPods 提供。只需将以下行添加到您的 Podfile 中。

pod 'LMArticleViewController'

使用方法

您可以选择子类化 LMArticleViewController 并在 viewDidLoad: 方法中设置内容,或者创建一个 LMArticleViewController 对象,设置其属性并显示它。

情况 A:子类化

- (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];

}

情况 B:初始化和推送

- (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];
}

待办事项列表

  • [ ] 调整图片视图的大小和比例。