在 UITapGestureRecognizer 中更改字体

change font in UITapGestureRecognizer

我有一个UIView,其中我有一个UILabel。我想在点击 UIView 时将 UILabel.Font 更改为自定义 UIFont(这会扩大可点击区域而不是使用 UIButton)。

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

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

字体更改已执行,单步执行代码显示字体更改。但它不会在 UI 中更新,并且该函数的所有后续执行也都从 Font 开始。

出了什么问题?

添加点击 selector 方法。

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

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

请注意,每次点击 UITableview header 时都会重新绘制。所以你的字体更改不会持续。