2

I have been using the Glass Button Generator from here to generate PNGs on iOS that look like UIGlassButtons yet don't use the UIGlassButton class (since it's private). These are then set as the image for custom UIButton instances. Works really nicely and looks great.

However I am now in a situation where I need to set the text on the buttons dynamically at runtime. The above approach won't work. I also need to dynamically set the size of the button in at least the vertical dimension.

UIButton as-is looks pretty ugly and flat. There must be some way of generating attractive buttons at runtime?

Non monotouch-specific solutions welcome, easy enough to translate.

Cheers in advance.

4

3 に答える 3

7

しばらくの間、独自の 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);
于 2011-04-08T02:50:53.787 に答える
1

UIButton をサブクラス化し、UILabel をサブビューとして追加します。これは、Interface Builder をいじるよりも、ストレート C# で行う方が簡単です。

それはテキストプロパティであり、おそらくフォントサイズなどの他のプロパティを公開します.

それを機能させるために必要なのはそれだけです。

于 2011-04-07T11:59:58.210 に答える
0

何もせずにボタンを配置し、UILabel をテキストでペイントし、UILabel の背景を clearColor でペイントし、UILabel をボタンのすぐ上に配置すると、ボタンの一部のように見えます。

于 2011-06-14T10:27:58.580 に答える