运行时有吸引力的 iOS UIButtons

Posted

技术标签:

【中文标题】运行时有吸引力的 iOS UIButtons【英文标题】:Attractive iOS UIButtons at runtime 【发布时间】:2011-04-07 08:22:53 【问题描述】:

我一直在使用来自here 的 Glass Button Generator 在 ios 上生成看起来像 UIGlassButtons 但不使用 UIGlassButton 类的 PNG(因为它是私有的)。然后将这些设置为自定义 UIButton 实例的图像。效果非常好,看起来很棒。

但是,我现在需要在运行时动态设置按钮上的文本。上述方法行不通。我还需要至少在垂直维度上动态设置按钮的大小。

UIButton 看起来很丑很扁平。一定有某种方法可以在运行时生成有吸引力的按钮?

欢迎非单点触控专用解决方案,易于翻译。

提前干杯。

【问题讨论】:

【参考方案1】:

我想编写自己的 GlassButton 有一段时间了,可以随意剪切并粘贴到您的代码中,我已将它作为 MonoTouch.Dialog 库的一部分:

https://github.com/migueldeicaza/MonoTouch.Dialog/blob/master/MonoTouch.Dialog/Utilities/GlassButton.cs

你可以这样使用它:

 var glossy = new GlassButton (new RectangleF (0, 0, 120, 50)) 
     NormalColor = UIColor.Red,
     HighlightedColor = UIColor.Black,
     DisabledColor = UIColor.Black
 ;
 glossy.Tapped += delegate 
      Console.WriteLine ("I have been tapped");
 
 window.AddSubview (glossy);

【讨论】:

如果我们可以将此按钮映射到元素或反射api,那就太酷了。【参考方案2】:

子类 UIButton 并添加一个 UILabel 作为子视图。这在直接的 C# 中比使用 Interface Builder 更容易。

公开它的文本属性,也许还有其他的,比如字体大小等。

这应该就是让它工作所需的全部内容。

【讨论】:

已经有这样的基础设施了,但这并不能解决UIButton默认丑陋的问题。 我认为使用预先创建的图像将是这里的最佳选择。 UIKit 不是 WPF。在 MonoTouch 中,您不会使用径向渐变笔刷等轻松生成漂亮的按钮。我建议在 Photoshop 等中创建一个按钮外观,或者让平面设计师参与进来。 如何在按钮中添加一个子视图以使左侧部分、右侧部分和中间部分具有 uiImaveView。比根据标签宽度调整中间图像宽度。这行得通吗?【参考方案3】:

你可以不加任何东西就放按钮,然后,用文字画一个UILabel,用clearColor作为UILabel的背景,把UILabel放在按钮的正上方,看起来就像是按钮的一部分。

【讨论】:

以上是关于运行时有吸引力的 iOS UIButtons的主要内容,如果未能解决你的问题,请参考以下文章

KeyMob成吸引AndroidIOS开发者利器

iOS 支付服务选项

基于引力搜索算法的涵数优化分析matlab优化算法十三

谷歌悄悄上线新应用,欲用“Switch to Android”吸引苹果用户

汉语-词语:吸引力

如何让Ubuntu 12.04 LTS更炫更具吸引力