2017-08-30 6 views
0

Swiftを使用する方法を学習していて、ツールバーを直接UITableViewControllerのストーリーボードに追加できないため、プログラムで追加しようとしています。ツールバーをプログラムで作成する

これは私がそれのように見えるようにしようとしているものです:今

iOS screenshot

、私はこのコードを追加:

let homeButton = UIBarButtonItem(title: "H", style: .plain, target: self, action: #selector(ProfileButtonTapped)) 

    let addButton = UIBarButtonItem(title: "+", style: .plain, target: self, action: #selector(ProfileButtonTapped)) 

let loveButton = UIBarButtonItem(title: "Love", style: .plain, target: self, action: #selector(ProfileButtonTapped)) 

let arr: [Any] = [homeButton, addButton, loveButton] 
setToolbarItems(arr as? [UIBarButtonItem] ?? [UIBarButtonItem](), animated: true) 
super.viewDidAppear(animated) 

そしてそれは次のようになります。

iOS screenshot

しかし、私は道を見つけることができません元の画像と同じ間隔で見えるようにするため、また画像を設定した場合、必要に応じてサイズを適応させる方法が見つかりませんでした。

ここで見つけたこのコードを試してみましたが、うまくいくように見えましたが、アプリを読み込むと要素がなくてもバーが表示されます。

navigationController?.setToolbarHidden(false, animated: true) 

let homeButn = UIImage(named: "HomeButton") 

let zeroPoint = CGPoint.zero 
let settingsButton = UIButton(type: UIButtonType.custom) as UIButton 
settingsButton.frame = CGRect(origin: zeroPoint, size: CGSize(width: 27, height: 27)) 
settingsButton.setImage(homeButn, for: []) 
settingsButton.addTarget(self, action: #selector(ProfileButtonTapped), for: UIControlEvents.touchUpInside) 

let rightBarButtonItem = UIBarButtonItem(customView: settingsButton) 
navigationItem.setRightBarButton(rightBarButtonItem, animated: true) 

私は実際にどのようにこのアイデアを行うのか分かりません。どうもありがとう!それは場合に役立ちます

+0

正確に何を達成しようとしていますか?特定のビュー内のタブバー?またはアプリケーション全体のタブバー?それが前者の場合は、git hubの素晴らしいプロジェクトをお勧めします。https://github.com/kitasuke/PagingMenuController – TNguyen

+0

まず、 'UITabBar'を追加しますか?または 'UIToolBar'ですか? – DonMag

答えて

1

これを試してみてください:

let flexibleSpace = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: self, action: nil) 

let homeButton = UIBarButtonItem(title: "H", style: .plain, target: self, action: #selector(ProfileButtonTapped)) 

let flexibleSpace1 = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: self, action: nil) 

let addButton = UIBarButtonItem(title: "+", style: .plain, target: self, action: #selector(ProfileButtonTapped)) 

let flexibleSpace2 = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: self, action: nil) 

let loveButton = UIBarButtonItem(title: "Love", style: .plain, target: self, action: #selector(ProfileButtonTapped)) 

let arr: [Any] = [flexibleSpace, homeButton, flexibleSpace1, addButton, flexibleSpace2, loveButton] 

setToolbarItems(arr as? [UIBarButtonItem] ?? [UIBarButtonItem](), animated: true) 

super.viewDidAppear(animated) 

あなたは「H」あまりにも左を取得するスペースの左側にフレキシブルなスペースを追加することができます。

+0

「外側」のフレキシブルスペースも必要です。「すべて」= [flexibleSpace1、homeButton、flexibleSpace2、addButton、flexibleSpace3、loveButton、flexibleSpace4] ' – DonMag

+0

@DonMag:正しい。私は答えを更新します。ありがとう、相棒。 – Amit

+0

@DonMag:私は 'flexibleSpace4'が必要とは思わない。 – Amit

関連する問題