今天在用swift2.0开发ios应用时遇到了一个坑
简单描述一下:
我是在用UIWebView加载网页。在判断当前网页的Url地址为我判断的url时,添加一个分享控件
如果不是就隐藏控件,如果把隐藏的代码放到else里面:运行过程不报错但是没效果。测试代码确实执行了(因为代码下面能打印 print("隐藏分享按钮"))
如果把隐藏的方法放在if之前调用就可以隐藏按钮。不知道这是系统的bug还是什么??请大神指点迷津
//UIWebView代理方法
func webView(webView:UIWebView, shouldStartLoadWithRequest request:NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
print(request.URL)
hideShareView()//隐藏按钮的这句话一定要放到这里,如果放到else里面不起作用,暂时不知道原因
if request.URL!.absoluteString.hasPrefix("http://xxxxxxx.com/News/Detail/") {//开头包括
print("显示分享按钮")
shareBt =UIButton(frame: CGRectMake(self.view.frame.size.width-50,0,50,43))
self.view.addSubview(shareBt);
shareBt.setImage(UIImage(named:"share"), forState: UIControlState.Normal)
shareBt.backgroundColor =UIColor.redColor()
//添加点击事件
shareBt.addTarget(self, action:"shareAction",forControlEvents: .TouchUpInside)
returntrue
}else{
hideShareView()//这一行代码貌似执行没效果。暂时不知道原因
print("隐藏分享按钮")
}
returntrue
}
func hideShareView(){
if(shareBt !=nil ){
shareBt.alpha =0.0//隐藏按钮
shareBt.backgroundColor =UIColor.whiteColor()
shareBt.enabled =false//让按钮不能点击
}
}