2015-09-28 1 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

Add tap 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