将 HTML 中的字符串与数组分开,用于 Xcode 7 Swift 2
Separate Strings from Array for HTML use in Xcode 7 Swift 2
我正在使用 Xcode 7.1 和 Swift 2。我有一个 array
var ingredientsList: [String] = []
,它将包含显示在 UITableView
中的数据.我想将 array
中的每个 String
分开并分配给一个新的 string
变量,以便稍后添加到某些 html
。我看了here,非常混乱,还处理了int
。我尝试将它应用于我的,但显然使用 string
代替但它没有用。有人可以帮帮我吗?数组数据的一个例子是:cheese, pepperoni, sauce, olives, onions, sausage
。谢谢。
我的 ViewController
和 UITableView
是:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cellIdentifier = "IngredientTableViewCell"
let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as! IngredientTableViewCell
cell.ingredientLabel.text = ingredientsList[indexPath.row]
// TOTAL of 50 ingredients Max
if indexPath.row == 0 {
if ingredientsList[0] != "" {
ingredientItem0 = ingredientsList[0]
}
}
if indexPath.row == 1 {
if ingredientsList[1] != "" {
ingredientItem1 = ingredientsList[1]
}
}
if indexPath.row == 2 {
if ingredientsList[2] != "" {
ingredientItem2 = ingredientsList[2]
}
}
if indexPath.row == 3 {
if ingredientsList[3] != "" {
ingredientItem3 = ingredientsList[3]
}
}
if indexPath.row == 4 {
if ingredientsList[4] != "" {
ingredientItem4 = ingredientsList[4]
}
}
if indexPath.row == 5 {
if ingredientsList[5] != "" {
ingredientItem5 = ingredientsList[5]
}
}
// ... it goes all the way down to a total of 50 ingredients
return cell
}
我有一个 UIBarButtonItem
执行将 [String]
数据导出为 PDF 并允许用户通过电子邮件发送的操作。
我的出口代码是:
let html =
/*HEADING*/"<head><center><br><h1><b>** <u>\(nameTextField.text!)</b></u> **</h1></br></center></head>" +
/*DIVIDER*/"<center>- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -</center>" +
/*BODY*/"<p><font size=5><br>\(ingredientItem0)</br> <br>\(ingredientItem1)</br> <br>\(ingredientItem2)</br> <br>\(ingredientItem3)</br> <br>\(ingredientItem4)</br> <br>\(ingredientItem5)</br> ... <br>\(ingredientItem49)</br></font></p>"
let fmt = UIMarkupTextPrintFormatter(markupText: html)
// Assign print formatter to UIPrintPageRenderer
let render = UIPrintPageRenderer()
render.addPrintFormatter(fmt, startingAtPageAtIndex: 0)
// Assign paperRect and printableRect
let page = CGRect(x: 0, y: 0, width: 595.2, height: 841.8) // A4, 72 dpi
let printable = CGRectInset(page, 0, 0)
render.setValue(NSValue(CGRect: page), forKey: "paperRect")
render.setValue(NSValue(CGRect: printable), forKey: "printableRect")
// Create PDF context and draw
let pdfData = NSMutableData()
UIGraphicsBeginPDFContextToData(pdfData, CGRectZero, nil)
for i in 1...render.numberOfPages() {
UIGraphicsBeginPDFPage();
let bounds = UIGraphicsGetPDFContextBounds()
render.drawPageAtIndex(i - 1, inRect: bounds)
}
UIGraphicsEndPDFContext();
现在,在我上面的 UITableView
代码中,我将每个 indexPath.row
分配给我创建的 String
variable
。我设置了最多 50 种成分。我不喜欢我设置了一个限制,如果用户只有 4 种成分和/或超过 50 种成分。在我的 pdf 导出中,它就像有 50 种并为它们打印空白行。因此,一个可能很短的食谱会有空白页,这些空白页来自我分配的空白成分,但这些成分不存在。说得通?很难看,但我不知道该怎么做。
循环遍历导出代码中的成分列表,并将包装成分列表项的 html 附加到 html
var html =
/*HEADING*/"<head><center><br><h1><b>** <u>\(nameTextField.text!)</b></u> **</h1></br></center></head>" +
/*DIVIDER*/"<center>- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -</center>" +
/*BODY*/"<p><font size=5>"
for var i = 0; i < ingredientsList.length; i++ {
html += "<br>\(ingredientsList[i] as String)</br> "
}
类似的东西....
我正在使用 Xcode 7.1 和 Swift 2。我有一个 array
var ingredientsList: [String] = []
,它将包含显示在 UITableView
中的数据.我想将 array
中的每个 String
分开并分配给一个新的 string
变量,以便稍后添加到某些 html
。我看了here,非常混乱,还处理了int
。我尝试将它应用于我的,但显然使用 string
代替但它没有用。有人可以帮帮我吗?数组数据的一个例子是:cheese, pepperoni, sauce, olives, onions, sausage
。谢谢。
我的 ViewController
和 UITableView
是:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cellIdentifier = "IngredientTableViewCell"
let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as! IngredientTableViewCell
cell.ingredientLabel.text = ingredientsList[indexPath.row]
// TOTAL of 50 ingredients Max
if indexPath.row == 0 {
if ingredientsList[0] != "" {
ingredientItem0 = ingredientsList[0]
}
}
if indexPath.row == 1 {
if ingredientsList[1] != "" {
ingredientItem1 = ingredientsList[1]
}
}
if indexPath.row == 2 {
if ingredientsList[2] != "" {
ingredientItem2 = ingredientsList[2]
}
}
if indexPath.row == 3 {
if ingredientsList[3] != "" {
ingredientItem3 = ingredientsList[3]
}
}
if indexPath.row == 4 {
if ingredientsList[4] != "" {
ingredientItem4 = ingredientsList[4]
}
}
if indexPath.row == 5 {
if ingredientsList[5] != "" {
ingredientItem5 = ingredientsList[5]
}
}
// ... it goes all the way down to a total of 50 ingredients
return cell
}
我有一个 UIBarButtonItem
执行将 [String]
数据导出为 PDF 并允许用户通过电子邮件发送的操作。
我的出口代码是:
let html =
/*HEADING*/"<head><center><br><h1><b>** <u>\(nameTextField.text!)</b></u> **</h1></br></center></head>" +
/*DIVIDER*/"<center>- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -</center>" +
/*BODY*/"<p><font size=5><br>\(ingredientItem0)</br> <br>\(ingredientItem1)</br> <br>\(ingredientItem2)</br> <br>\(ingredientItem3)</br> <br>\(ingredientItem4)</br> <br>\(ingredientItem5)</br> ... <br>\(ingredientItem49)</br></font></p>"
let fmt = UIMarkupTextPrintFormatter(markupText: html)
// Assign print formatter to UIPrintPageRenderer
let render = UIPrintPageRenderer()
render.addPrintFormatter(fmt, startingAtPageAtIndex: 0)
// Assign paperRect and printableRect
let page = CGRect(x: 0, y: 0, width: 595.2, height: 841.8) // A4, 72 dpi
let printable = CGRectInset(page, 0, 0)
render.setValue(NSValue(CGRect: page), forKey: "paperRect")
render.setValue(NSValue(CGRect: printable), forKey: "printableRect")
// Create PDF context and draw
let pdfData = NSMutableData()
UIGraphicsBeginPDFContextToData(pdfData, CGRectZero, nil)
for i in 1...render.numberOfPages() {
UIGraphicsBeginPDFPage();
let bounds = UIGraphicsGetPDFContextBounds()
render.drawPageAtIndex(i - 1, inRect: bounds)
}
UIGraphicsEndPDFContext();
现在,在我上面的 UITableView
代码中,我将每个 indexPath.row
分配给我创建的 String
variable
。我设置了最多 50 种成分。我不喜欢我设置了一个限制,如果用户只有 4 种成分和/或超过 50 种成分。在我的 pdf 导出中,它就像有 50 种并为它们打印空白行。因此,一个可能很短的食谱会有空白页,这些空白页来自我分配的空白成分,但这些成分不存在。说得通?很难看,但我不知道该怎么做。
循环遍历导出代码中的成分列表,并将包装成分列表项的 html 附加到 html
var html =
/*HEADING*/"<head><center><br><h1><b>** <u>\(nameTextField.text!)</b></u> **</h1></br></center></head>" +
/*DIVIDER*/"<center>- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -</center>" +
/*BODY*/"<p><font size=5>"
for var i = 0; i < ingredientsList.length; i++ {
html += "<br>\(ingredientsList[i] as String)</br> "
}
类似的东西....