我有一個UIButton
與titleLabel
和backgroundImage
。我想在突出顯示狀態下調整按鈕的大小。這個調整大小應該會影響titleLabel
和backgroundImage
,但我不想修改按鈕的點擊區域。如何調整UIButton而不修改它的熱門矩形
目前我正在嘗試這樣。它幾乎工作,但它也影響了災區:
- (void)setHighlighted:(BOOL)highlighted
{
if (highlighted && !self.highlighted)
{
self.transform = CGAffineTransformMakeScale(scaleFactorOnTouch, scaleFactorOnTouch);
}
else if (!highlighted && self.highlighted)
{
self.transform = CGAffineTransformMakeScale(1.0, 1.0);
}
[super setHighlighted:highlighted];
}
這導致當你觸摸它(100個像素擴展)災區外的按鈕,拖動裏面,還有當你拖動的這回旋/震顫延長命中區域邊緣。擺動是因爲hitArea在高亮狀態和非高亮狀態之間不斷變化。
我也嘗試修改self.layer.transform屬性,但這也會導致命中區域的更改。
如果可能,我想避免爲突出顯示的狀態設置不同的backgroundImage。
爲什麼你的兩個條件不相互對立?首先,你設置'self.titleLabel'的變換。相反,你重置'self'的變換。你當然不是這個意思嗎?你應該設置和重置同一事物的變換,是的? – matt 2013-04-08 15:05:53
對不起,這是爲了讀兩個'self.transform'。我編輯了這個問題來反映這一點。它顯示'self.titleLabel.transform',因爲我試圖手動調整'titleLabel'和'backgroundImage'的大小,但是我找不到調整'backgroundImage'的方法(UIBUtton的backgroundImage似乎只是將按鈕大小)。 – 2013-04-08 15:08:14