0

ここでは、2 つのビュー (バーとアイコン) を作成し、1 つの呼び出しを@window.addSubview行って両方を追加したいと考えています。

class AppDelegate
  def application(application, didFinishLaunchingWithOptions:launchOptions)
    @window = UIWindow.alloc.initWithFrame UIScreen.mainScreen.bounds
    @window.makeKeyAndVisible

    bar = UIView.alloc.initWithFrame [[0, 0], [320, 100]]

    icon= UIImageView.alloc.initWithFrame([[100,0], [100,100]])

    @window.addSubview bar   # I have two calls to addSubview
    @window.addSubview icon

  true
  end
end

私はこのようなものが欲しいです:

@window.addSubview bar, icon

また

@window.addSubview [bar,icon]

addSubview違いはわずかだと思いますが、一度に複数のビューを呼び出す方法が必要なようです。

4

2 に答える 2

1

私はあなたがこれを行うことによって後日あなた自身と他の人をつまずかせることを懇願していると言うでしょう、しかしあなたがしなければならないならあなたはただ再開UIViewしてあなた自身でメソッドを定義することができます

class UIView
  def addSubviews *views
    views.flatten.each { |view| addSubview view }
  end
end

これにより、

@window.addSubviews [view_a, view_b]

# OR

@window.addSubviews view_a, view_b

ここで試してみるのは完全な例です

class AppDelegate
  def application(application, didFinishLaunchingWithOptions:launchOptions)

    @window = UIWindow.alloc.initWithFrame UIScreen.mainScreen.bounds
    @window.makeKeyAndVisible

    view_a = UIView.alloc.initWithFrame [[100, 100], [100, 100]]
    view_a.backgroundColor = UIColor.greenColor

    view_b = UIView.alloc.initWithFrame [[200, 200], [100, 100]]
    view_b.backgroundColor = UIColor.redColor

    @window.addSubviews [view_a, view_b]

    true
  end
end

class UIView
  def addSubviews *views
    views.flatten.each { |view| addSubview view }
  end
end
于 2012-07-19T08:51:16.983 に答える
0

私の知る限り、あなたが望むことをするための単一の方法はありません。通常の Ruby の方法は次のようになります。

[bar,icon].each do |view|
  @window.addSubview view
end  

またはさらに短い:

[bar, icon].each{|v| @window.addSubView(v) }
于 2012-07-15T21:25:01.367 に答える