MGTemplateEngine 模版发动机简单使用

https://github.com/nxtbgthng/MGTemplateEngine

MGTemplateEngine 模版引擎

MGTemplateEngine比較象 PHP 中的 Smarty 模版引擎。是一个轻量级的引擎,简单好用。仅仅要设置非常多不同的HMTL模版。就能轻松的实现一个View多种内容格式的显示,对于不熟悉HTML或者减轻工作量而言,把这些工作让设计分担一下还是非常好的,也比較easy实现设计想要的效果。

首先,看看模版的代码

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="utf-8">

<title></title>

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<link href="./detail.css" rel="stylesheet">

</head>

<body>

<div id=‘container‘ name="container">

<div class="title">{{ title }}</div>

<div class="date">{{ date }}</div>

<div class="content">{{ content }}</div>

</div>

</body>

</html>

Objective-C代码 - 以下的创建代码MGTemplateEngine都是从官方的样例中參考下来的,已经有非常具体的说明

// Set up template engine with your chosen matcher.

MGTemplateEngine *engine = [MGTemplateEngine templateEngine];

//[engine setDelegate:self];

[engine setMatcher:[ICUTemplateMatcher matcherWithTemplateEngine:engine]];

// 这里就是设置。或者里边塞变量的地方。

事实上也能够设置一个数组,这样模板的灵活也会更强。这里我就不演示了官方有样例

[engine setObject:self.detailData[@"title"] forKey:@"title"];

[engine setObject:self.detailData[@"content"] forKey:@"content"];

// MGTemplateEngine/Detail/detail.html

// MGTemplateEngine/Detail/detail.css

NSString *templatePath = [[NSBundle mainBundle] pathForResource:@"detail" ofType:@"html"];

// Process the template and display the results.

NSString *html = [engine processTemplateInFileAtPath:templatePath withVariables:nil];

// 获得HTML

self.htmlWebView = [[UIWebView alloc] initWithFrame:CGRectMake(8, 5, 304, 320)];

self.htmlWebView.delegate = self;

self.htmlWebView.userInteractionEnabled = NO;

// 你就能载入到HTML里面的.css文件

NSString *baseURL = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Detail"];

[self.htmlWebView loadHTMLString:html baseURL:[NSURL fileURLWithPath:baseURL]];

[self.detailView addSubview:self.htmlWebView];

由于我的UIWebView是在插入到UITableView,所以在UIWebView载入完后,就得又一次计算高度。由于我想让用户感觉不到这事实上是一个HTML。

// 我将UIWebView加入到了self.detailView

self.listTableView.tableHeaderView = self.detailView;

#pragma mark -

#pragma mark -# UIWebViewDelegate

- (void)webViewDidFinishLoad:(UIWebView *)webView {

// 获取整个HMTL的高度,这非常好理解。非常easy的JS

NSString *heightString = [self.htmlWebView stringByEvaluatingJavaScriptFromString:@"document.getElementById(\"container\").offsetHeight;"];

// 重设view内容大小

CGRect nFrame = self.detailView.frame;

nFrame.size.height = [heightString doubleValue] + 35.0;

self.detailView.frame = nFrame;

// 重设webview内容大小

CGRect nWebViewFrame = self.htmlWebView.frame;

nWebViewFrame.size.height = [heightString doubleValue] + 15;

self.htmlWebView.frame = nWebViewFrame;

// 让UIWebView载入完后,才设置UITableView,最后才载入评论

[self tableViewSetting];

[self getCommentList];

}

以上的都是 MGTemplateEngine 非常主要的使用。将来也会大派用场的。对于内容页的显示,没有比HTML来的更方便直接,通过切换模版和简单的參数设置,多个不同类型的栏目也能够使用同一个具体页,非常大程度上减轻工作理和易于维护。

时间: 2024-12-07 03:03:13

MGTemplateEngine 模版发动机简单使用的相关文章

MGTemplateEngine 模版引擎简单使用(转)

原文:http://blog.csdn.net/crazy_srufboy/article/details/21748995 要实现的效果 首先上图中间的 标题至内容 都是使用UIWebView显示,评论是UITableView可以往下拖加载更多评论,也可以增加评论同删除评论. 动机 评细页中使用 UIWebView 会使显示内容更加的灵活和简单,当然你也许可以网上找UITextView的扩展同样也行,但我感觉HTML更符合我的需求.在多年的PHP开发中我们知道,其实详细页都是大同小异,主要是显

MGTemplateEngine 模版引擎简单使用以及MGTemplateEngine导入xcode6.1报错修改

MGTemplateEngine 模版引擎 一.  MGTemplateEngine比较象 PHP 中的 Smarty 模版引擎,是一个轻量级的引擎,简单好用.只要设置很多不同的HMTL模版,就能轻松的实现一个View多种内容格式的显示,对于不熟悉HTML或者减轻工作量而言,把这些工作让设计分担一下还是很好的,也比较容易实现设计想要的效果. 像网易.粉笔网都是用的该库. 首先,看看模版的代码 [html] view plaincopy <!DOCTYPE html> <html lang

BASH 文本模版的简单实现 micro_template_compile

具体代码 ############################### # # Funciton: micro_template_compile # # Parameter: # [1] => template :String # [2..n] => values for placeholder as key=value # # Example: # <- micro_template_compile '{code: {{error.code}}, message: "{{e

【模版】简单哈希和哈希表处理冲突

哈希(Hash)算法就是单向散列算法,它把某个较大的集合P映射到另一个较小的集合Q中.数学原理听起来很抽象,在网上找到一个很生动的描述.我们有很多的小猪,每个的体重都不一样,假设体重分布比较平均(我们考虑到公斤级别),我们按照体重来分,划分成100个小猪圈. 然后把每个小猪,按照体重赶进各自的猪圈里,记录档案.如果我们要精确找到某个小猪怎么办呢?我们需要每个猪圈,每个小猪的比对吗? 当然不需要了. 我们先看看要找的这个小猪的体重,然后就找到了对应的猪圈了. 在这个猪圈里的小猪的数量就相对很少了.

C++函数模版的简单使用

模版算是C++的独有特性吧,也算是C++中比较难的地方,我平时开发的时候用的非常少,或者几乎没有用到,需要模版的地方是能看懂框架中相关的代码: 模版函数相对还是很简单的,引入模版的目的在于代码的重用:比如算法相似,但是由于数据类型不同,我们不得不把同样的一份代码拷贝两次,而仅仅是为了修改数据类型,那么在引入了函数模版之后,我们可以仅仅用一份代码而表示不同重载函数. 下面介绍一下最简单的函数模版的应用: template <typename T> //定义一个抽象的数据类型T T myMax(T

【开卷有益】JAVA正则表达式模版

专业既然是机器学习,那工作肯定也是继续和数据打交道,那么问题来了,很多时候推荐算法和数据挖掘算法都是现成可用的,平台初建,重点还在数据过滤和抽取,怎样高效的抽取数据? 利用往常算法比赛中常用的字符串处理方法吗,omg,维护它是一个淡淡疼的忧伤. 那么,重点来了,正则表达式,干净利落. 模版如下: //step1,set reg string String regStr = "^helloworld" //step2,set Pattern Pattern regPattern = Pa

一个基于POI的通用excel导入导出工具类的简单实现及使用方法

前言: 最近PM来了一个需求,简单来说就是在录入数据时一条一条插入到系统显得非常麻烦,让我实现一个直接通过excel导入的方法一次性录入所有数据.网上关于excel导入导出的例子很多,但大多相互借鉴.经过思考,认为一百个客户在录入excel的时候,就会有一百个格式版本,所以在实现这个功能之前,所以要统一excel的格式.于是提供了一个通用excel模版的下载功能.当所有客户用模版录入好数据再上传到系统,后端对excel进行解析,然后再持久化到数据库. 概述: 此工具类的几大特点 1.基本导入导出

网站后端_Python+Flask.0014.FLASK模版相关之使用JinJa2模版渲染?

简单 说明: 说明:  之前章节中,视图函数直接返回文本,而实际生产环境很少这样,因为实际的页面大多是带有样式和复杂逻辑的HTML+CSS+JS代码,这可以让浏览器渲染出非常漂亮和复杂的效果,页面内容应该是可以重用的,而且需要更执行更高级的功能 自带 模版: #!/usr/bin/env python # -*- coding: utf-8 -*- """ # # Authors: limanman # OsChina: http://xmdevops.blog.51cto.

zabbix学习(三)添加主机和Templates模版

进入ZABBIX监控的页面 添加主机: 点击配置-主机-创建主机 填写主机名称 填写可见的名称(就是在zabbix监控中显示的名称) 给主机添加到一个组里面(可用现有组,也可以在下面添加新的主机组) 填写IP地址(地址为被监控主机IP) 填写端口号(用10050默认即可) 下面没画的各个选项不用修改 保存 给主机添加模版: 这里我们使用zabbix默认自带的模版进行简单添加 点击模版-添加 选中需要的模版-选择 保存 到这里一个简单的添加监控主机和模版的工作已经完成了. zabbix学习(三)添