如何突出显示时如何更改UIControl的大小?

时间:2014-07-31 17:02:52

标签: ios uicontrol

我有一个UIControl子类,在触摸时会改变外观和大小,有点像iOS键盘的按钮在触摸时会变成打字机的手:

keyboard sample

我不确定如何写它。我们的想法是在突出显示默认按钮形状时绘制不同的形状:

                    +---+
                    |   |
+---+               |   |
|   |  -> touch ->  |   | 
+---+               +---+

但由于默认按钮小于突出显示的形状,因此较大的形状会被剪裁。我考虑过这些选择:

  • 在默认框架之外绘图。似乎不可能。
  • 突出显示时更改控件的大小。感觉相当hacky和容易出错。
  • 扩大控件以适应更大的形状。感觉“错误”,我希望能够以较小的默认形状使用控件。

这种情况是否有最佳做法?

1 个答案:

答案 0 :(得分:1)

以下是一些方法:

  1. 您可以在框架外绘图,只需确保myView.clipsToBoundsFalse。这将允许您在另一个视图内绘制视图范围之外,并绘制您想要的任何额外内容。

  2. 这可能是最干净的解决方案,但在我看来也有点“hacky”。另一种方法是脏的(如你所说)并重置帧大小。

  3. 最后一种方法是创建另一个视图(按下键)并将其放在原始(未按下的键)视图之上。

  4. 总而言之,它实际上取决于你在视图中绘制/显示的内容。