2015-09-28 100 views
0

我有一个UIView,其中我有一个UILabel。我想将UILabel.Font更改为自定义UIFont,当UIView被点击时(这扩大了可点击面积,而不是使用UIButton)。更改UITapGestureRecognizer中的字体

要添加UITapGestureRecognizer,我使用下面的代码:

var gestureRecognizer = new UITapGestureRecognizer ((item) => { 
    (item.View.Subviews[0] as UILabel).Font = Constants_iOS.FONT_OS_SMALL_LABEL_SEMIBOLD; 
}); 
view.AddGestureRecognizer (gestureRecognizer); 

字体更改被执行,并逐步执行代码显示的字体变化。但它不会在用户界面中更新,并且该函数的所有后续执行也都以Font为旧。

什么问题?

回答

0

请注意,UITableview标题每次被点击时都会重绘。所以你的字体改变不会持久。

0

加水龙头selector方法。

let tap = UITapGestureRecognizer(target: self, action: Selector("handleTap:")) 
tap.delegate = self 
view.addGestureRecognizer(tap) 

func handleTap(sender:UIGestureRecognizer){ 
    //change your font here 
} 
+0

不,不起作用... – vrwim

+0

你有没有添加'UIGestureRecognizerDelegate' – Mukesh

+0

是的,它仍然无法正常工作。但我认为我得到了这个问题,我在UITableView的标题视图中进行了这项操作,每次轻敲时显然都会重建。所以我正在执行字体更改,然后重建headerview ... – vrwim