8

私は を持っていてgrouped UITableView、私の の一番下に UIButton を追加したいと思いますUITableView。Storyboard と UITableViewController を使用しています。コードを追加したり、UI 要素をドラッグ アンド ドロップしたりする必要がある場所がよくわかりません。ストーリーボードのフッタービューとして UIView を追加してから、そのビューにボタンを追加しようとしましたが、タブバーのように常にビューの一番下に留まるという望ましい効果はありません。また、ボタンは常に最前面にあり、UITableView はその後ろにスクロールする必要があります。

// tried this but it didn't work:
self.tablview.tableFooterView = [[UIView alloc] initwithview...]
4

7 に答える 7

11

UIButtonのスクロール位置に関係なくUITableView(つまり、 内ではなく) 画面の一番下に表示したい場合はUITableView、おそらくUITableViewControllerサブクラスを使用しないでください。代わりに、UIViewControllerサブクラスを使用する場合は、単にUITableViewルートviewプロパティに を追加し、適切なレイアウト制約を使用してUIButtonや他のビュー ( などUIToolbar) を追加して、画面の下部または必要な場所に配置できます。 . UITableViewControllerルートプロパティはインスタンスviewである必要があるため、これはサブクラスでは実際には不可能です。UITableView

于 2013-08-11T21:31:45.880 に答える
6

OK、ツールバーを UITableViewController に直接追加したい場合は、このチュートリアルの指示に従って「偽の」フッター ビューを作成できます。

迅速かつ簡単にすることに興味がある場合は、@CharlesA による上記の回答者に従ってください。ただし、Round Rect Button の代わりに UIBarButtonItem を備えた標準ツールバーを使用すると、見栄えがよくなります。

Navigation Controller を使用している場合は、ツールバーを再表示して (Navigation Controller には既にツールバーが付属しているため)、必要な操作を行うためのボタンを追加できます。コーディングは次のようになります。

[self.navigationController setToolbarHidden:NO];

UIBarButtonItem *buttonItem = [[UIBarButtonItem alloc] initWithTitle: @"Button Name"
                                            style: UIBarButtonItemStyleBordered
                                           target: self
                                           action: @selector(yourMethod:)];

self.toolbarItems = [ NSArray arrayWithObjects: buttonItem, nil ];

IMOそれを行う方法は、のUIViewController代わりにを作成することですUITableViewController。VCに a を追加し、TableViewその下にツールバーが収まるように TableView の下部を上げ、ツールバーをドラッグ アンド ドロップし、UIBarButtonItem をその上にドラッグ アンド ドロップします。UIBar ボタン項目から Control を押しながらクリックし、IBAction.

すばやく、簡単に、きれいに。

于 2013-08-11T22:11:10.277 に答える
3

はい、UITableViewConroller で可能です。UITableViewController クラスの viewDidLoad() 関数内に、次のコードを追加します。

    let bottomView = UIView()
    bottomView.backgroundColor = .red // or your color
    bottomView.frame = CGRect(x: 0, y: UIScreen.main.bounds.size.height - 78, width: tableView.frame.size.width, height: 78) // 78 or your size of view
    navigationController?.view.addSubview(bottomView)
    tableView.tableFooterView = UIView()

ここに画像の説明を入力

于 2019-11-24T13:38:38.660 に答える
1

UITableViewController実際には、UIButton を追加してビューの下部 (またはヘッダー) に貼り付けることができます。UIViewController

スイフト3

作成ボタン:

Xビュー全体のサイズを適用するため、これにより、好きな量のYマージンを追加できます。-次に、サイズと幅を設定します。

let myButton: UIButton = UIButton(CGRect(x: self.view.bounds.size.width - 66, y: self.view.bounds.size.height - 66, width: 50, height: 50))

ノート

幅と高さがどのように見えます66か?ボタンの高さと幅にマージンを追加する必要があります。この場合、50 + 16 = 66. また、背景色やその他のプロパティを追加して、ボタンが表示されるようにします。

View を NavigationController に追加する

self.navigationController?.view.addSubview(myButton)

Swift 2、1、または Objective-C でこれを行う方法を理解できると確信しています。

于 2016-11-03T17:53:05.557 に答える
0

私は次のようにして、Swift 1.2のTableViewControllerでこれを達成しました(迅速な解決策を探しているときに私がしたように人々がこれに出くわした場合)。

ストーリーボードに TableViewController を配置したら、ビューをコントローラーにドラッグします。必要に応じて設定し、右クリック (または Ctrl キーを押しながらクリック) してソースにドラッグし、IBOutlet を作成します。次に、ビューをクリックしてトップ バーにドラッグしますトップバーで見る。TableViewController のソースに変更すると、UIScrollViewDelegate を派生させる必要があります。設定する必要がありtableView.delegate = selfます。その後、次のことができます

self.tableView.contentInset = UIEdgeInsetsMake(0.0, 0.0, floatingView.frame.height, 0.0)
        self.tableView.scrollIndicatorInsets = UIEdgeInsetsMake(0.0, 0.0, floatingView.frame.height, 0.0)

        floatingView.frame.origin.y = self.tableView.bounds.origin.y + self.tableView.frame.height - floatingView.frame.height
        floatingView.autoresizingMask = UIViewAutoresizing.FlexibleTopMargin
        self.view.addSubview(floatingView)

その後

override func scrollViewDidScroll(scrollView: UIScrollView) {

        floatingView.frame = CGRectMake(self.floatingView.frame.origin.x, self.tableView.bounds.origin.y + self.tableView.frame.height - floatingView.frame.height, self.floatingView.frame.size.width, self.floatingView.frame.size.height)
    }
于 2015-11-22T12:04:50.330 に答える