在 UITapGestureRecognizer 中更改字体
Posted
技术标签:
【中文标题】在 UITapGestureRecognizer 中更改字体【英文标题】:change font in UITapGestureRecognizer 【发布时间】:2015-09-28 11:41:33 【问题描述】:我有一个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
为旧的开始。
出了什么问题?
【问题讨论】:
【参考方案1】:添加点击selector
方法。
let tap = UITapGestureRecognizer(target: self, action: Selector("handleTap:"))
tap.delegate = self
view.addGestureRecognizer(tap)
func handleTap(sender:UIGestureRecognizer)
//change your font here
【讨论】:
你添加了UIGestureRecognizerDelegate
是的,但它仍然不起作用。但我认为我遇到了问题,我在 UITableView 的标题视图中执行此操作,显然每次点击它时都会重新构建。所以我正在执行字体更改,然后重建 headerview...【参考方案2】:
请注意,每次点击 UITableview 标题时都会重新绘制它。所以你的字体变化不会持续。
【讨论】:
以上是关于在 UITapGestureRecognizer 中更改字体的主要内容,如果未能解决你的问题,请参考以下文章
在 UITapGestureRecognizer 上添加参数
在 UITapGestureRecognizer 中更改字体
使用 UITapGestureRecognizer 无法识别的选择器
带有点击事件的 UITapGestureRecognizer