2012-03-25 9 views
0

私はUITableViewを持っていますが、テーブルの上にUITextFieldを追加することはできませんが、テーブルビューがスクロールされるときにスクロールしたくありません。私はuitextフィールドを上に残しておきたい。私はこれらのフォーラムでいくつかの以前の答えを見ましたが、それらはすべて.xibファイルについて語りました。これはXcode 4.3とストーリーボードでこれをしようとしています。いくつかの基本的なコードを提供することができればそれは分かります:)IOS固定された位置にUITextFieldをアンカーする方法

答えて

2

これは簡単に行うことができます。そのトリックは、UITableViewControllerではなくUIViewControllerを使用して開始する必要があることです。

ストーリーボードを使用している場合は、まずUIViewControllerをキャンバスにドラッグします。その後、UITextFieldをView Controllerにドラッグし、必要な位置(上端)に配置します。次に、UITableView(NOT UITableViewController)をviewcontrollerにドラッグし、ビューの一部を除いてビューコントローラのすべてのビューをカバーするようにテーブルビューのフレームを設定します。テキストフィールドがある部分(つまり、スクロールしたくない)。次に、UITableViewCellをオブジェクトのpalateからテーブルビューにドラッグします。プロパティインスペクタで、ユニークな何かにテーブルビューセルの識別子プロパティを設定

あなたはこれをやった後、あなたのストーリーボードのシーンはこのようなものになるはずです(「MyCell」またはものは何でも。):

enter image description here

次に、テーブルビューのデリゲートとデータソースのプロパティを設定する必要があります。これを忘れないでください。これを行うには、テーブルビューをCtrlキーを押しながらクリックし、デリゲートとデータソースからView Controllerにドラッグします。

最後に、ビューコントローラクラスでテーブルデータソースとデリゲートメソッドを実装する必要があります。

@interface MyViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> 

、その後、あなたのビューコントローラの実装.mファイルで必要なメソッドを実装します。あなたのビューコントローラヘッダーファイル(.H)で、あなたはこのようUITableViewDelegateとUITableViewDataSourceを実装することを宣言。最低限、tableView:numberOfRowsInSection:cellForRowAtIndexPath:、おそらくtableView:didSelectRowAtIndexPath:などを実装する必要があります。

@implementation MyViewController 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    // return number of rows 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{  
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyCell"]; 

    // set value(s) in your table cell here 

    return cell; 
} 
関連する問題