1、swift富文本的处理
swift有时候需要对UILabel复制富文本,例如个别几个文字变颜色等,按照OC方式直接通过rangof方法得到NSRange,但是swift需要做特殊处理下;
let contentStr = "1.您可通过银行网点、网上银行、手机银行等渠道向包银消费金融对公账户转账进行还款。\n2.转账金额应与上述金额一致,如您进行了银行转账还款,请务必到\"包银消费金融\"微信公众号联系在线客服,否则还款无法入账,谢谢您的配合。";
let subStr1 = "应与上述金额一致";
let subStr2 = "\"包银消费金融\"微信公众号";
let text = contentStr as NSString;
let rang1: NSRange = text.range(of: subStr1)
let rang2: NSRange = text.range(of: subStr2)
这样就可以得到NSRange了
2、swift的闭包使用
//定义block数组
var completionHandlers: [() -> Void] = []
//定义闭包变量
var parmarBlock = {()->Void in
}
//无参数无返回值闭包作为参数,并把闭包存成全局变量
func testBlock1(complate:@escaping ()->Void){
//将闭包添加到数组里
completionHandlers.append (complate);
complate();
//给闭包变量赋值
parmarBlock = complate;
}
//无参数有返回值闭包作为参数
func testBlock2(complate:()->Int) -> Int {
let num = complate();
print(num)
return num;
}
//无参数有返回值闭包作为参数
func testBlock3(complate:()->Void) -> Int {
complate();
return 12;
}
//无参数有返回值闭包作为参数
func testBlock4(complate:(_ str1:String)->Void) -> Int {
complate("2");
return 12;
}
其中设置闭包为变量时候,不能通过这种方式
var parmarBlock:() -> Void?
不然会报错
网友评论