我有一个UIScrollView
,其中包含UIButton
和gradient button,它是UIControl
个子类。渐变按钮根据用户是否轻敲(指示突出显示)而不同地绘制。
按钮在滚动视图内定期运行,而渐变按钮则不会:每当我点击按钮时,它会立即重绘以指示它已突出显示。但是,渐变按钮不会立即响应。只有我按住水龙头大约半秒钟,它才会重绘。
应该注意的是,在滚动视图之外,渐变按钮的行为与预期的一样。
这似乎与UIScrollView
在转发事件之前等待一段时间的事实有关,以决定它是否应该滚动。
我的问题是 - UIButton
做了哪些不同的事情?我怎么能在渐变按钮中模仿这种行为?或者也许是UIScrollView
方面的特殊待遇?
编辑:问题似乎与绘图有关。触摸事件被正确调用,但不是两次调用drawRect:
我只得到一个。强制runloop处理事件以及调用[CATransacation flush]
会导致两次调用drawRect:
,但没有明显的变化。