2012-08-22 41 views
0

我有一个有趣的场景,我有点想法。我希望有人知道某种“UIButton + FloatingLabel”类别,或者可能只是我忽略的一些东西。当UIScrollView在可见视图之外滚动按钮时更改UIButton textLabel位置

我有一个水平滚动UIScrollView与一堆按钮的各种宽度。我面临的问题是,当UIButton开始滚动到可见视图之外时,textLabel会随之移动(标签在按钮中是左对齐的)。

我想能够检测到这一点,并保持标签“浮动”在其余按钮的视图内,直到整个按钮滚动。

我能想到的最接近的是重写UIScrollView layoutSubviews并检查每个contentOffset更新的标签视图,但这可能会带来很多按钮的代价。

任何人都可以提供一些指导或几个有用的链接?任何帮助表示赞赏,欢呼!

回答

0

可以实现的一种方法是将子类UIButton并在该子类中使用自己的标签。然后覆盖UIButtondrawRect:方法,根据按钮在物理屏幕上的位置([UIScreen mainScreen])更改标签的位置。

希望这有助于。

+0

感谢您的回应,但'drawRect'只会被调用一次(当按钮被显示时)。我可能会开始发送'setNeedsDisplay'垃圾邮件,但我认为这与我在上面描述的'layoutSubviews'方法一样低效。 – rwyland

+0

是的,这是真的。我没有看到任何其他不完整的方式。我说给他们任何一个尝试,看看他们如何表现,你永远不知道! – KDaker

+0

如果你考虑一下,你只需要调用'setNeedsDisplay'来跨越屏幕边缘的按钮,我假设它在任何时候都不是太多? – KDaker