Rubymotion を使用して iOS アプリを作成しています。コードを再利用できるようにするために、elements.rb (モジュール) というファイルを作成しました。ここには、さまざまなものをレンダリングする多くの関数があります。すべてが完全に正常に動作します。
これは関数の 1 つです。
def create_nav_button (hash = {})
# Set the default values
defaultFont = UIFont.fontWithName('Avenir-Medium', size:13)
buttonNormal = UIImage.imageNamed('navbar/button.png')
buttonSelected = UIImage.imageNamed('navbar/button_selected.png')
# Create the button
button = UIBarButtonItem.alloc.init
button.title = hash[:title]
button.action = hash[:action] || 'open'
button.target = self
button.setBackgroundImage(buttonNormal, forState:UIControlStateNormal, barMetrics:UIBarMetricsDefault)
button.setBackgroundImage(buttonSelected, forState:UIControlStateHighlighted, barMetrics:UIBarMetricsDefault)
button.setTitleTextAttributes({UITextAttributeFont => defaultFont}, forState:UIControlStateNormal)
# Add button to navbar
if (hash[:position] == 'right')
self.navigationItem.rightBarButtonItem = button
else
self.navigationItem.leftBarButtonItem = button
end
end
これは、コントローラーファイルで呼び出す方法です。
create_nav_button (:title => 'Info', :action => 'project_details', :position => 'right')
これは要素を再利用する良い方法ですか? ボタンのタイトルを動的に変更するにはどうすればよいですか?
すべての入力に感謝します!