iPhone上的样式分段控制按钮?

时间:2009-02-12 19:36:17

标签: cocoa-touch

是否可以更改iPhone原生按钮的样式?例如,我想为按钮文本的一部分使用较小的字体大小,而对另一个按钮文本使用较大的字体 - 例如

<small>pick a</small><big>color</big>

我还想使用形成右箭头形状而不是矩形的按钮。类似的东西:

---------------------------------
\ Color  \   Size    \    Shape  \
/        /           /           /
----------------------------------

有可能吗?

3 个答案:

答案 0 :(得分:2)

最简单的选择是将圆角矩形按钮与自定义图像一起使用,遗憾的是,这不符合您的可调整大小的文本要求(除非您有每种尺寸的图像)。

  • 将圆角矩形按钮添加到视图
  • 在督察中:
    - 将类型切换为“自定义”
    -set新按钮图像的背景
    - 将文字放在“标题”中

如果要使用按钮的文本属性(标题),请务必使用背景按钮图像

答案 1 :(得分:1)

我认为你不能轻易做到。您可能必须继承UISegmentedControl并覆盖一堆方法。要在按钮文本上获得不同大小的字体,您必须创建多个UILabel作为子视图,并为每个字体提供适当的文本和字体大小,然后将它们放置出来。要获得右箭头形状,您需要覆盖drawRect:方法以绘制控件的背景。

答案 2 :(得分:0)

您可以将UIView子类化并将多个UIButton堆叠在一起。要让每个按钮形成一个右箭头形状,您可以使用一个可伸缩的图像并将UIButtons背景设置为此UImage:

UIImage* buttonImage =[[UIImage imageNamed:@"arrowImage.png"] 
       stretchableImageWithLeftCapWidth:5.0 topCapHeight:0.0];

这是一个很好的起点:https://github.com/boctor/idev-recipes/tree/master/CustomSegmentedControls

我玩过这个并进行了修改,所以我可以自定义每个段的宽度和其他一些调整,这是我的分叉:https://github.com/janfsd/idev-recipes/tree/master/CustomSegmentedControls

您可以进一步自定义其中一个以接受每个按钮的文字大小参数,以满足您的需求。