2

私のアプリでは、ストーリーボードを使用しています。ストーリーボードの要素の 1 つは UITableViewController です。そのため、その中にテーブルビューがあります。

私の質問は、このテーブルビューに UIView を配置する方法です。それは非表示になり、テーブルビューのテーブルビューセルが押されたときに表示したいと思います。それは可能ですか?どうやってやるの?

4

5 に答える 5

7

最善の解決策は、StoryBoard で通常のビュー コントローラー (UIViewController) を使用することです。コントローラーは 2 つのプロトコル (UITableViewDataSource と UITableViewDelegate) を実装する必要があり、ビュー コントローラーのビューに UITablewView を追加する必要があります。

この場合、インターフェイス ビルダーでは、ビュー コントローラーのビューに任意のビューを配置できます (テーブル ビューの上に配置できます)。

于 2013-02-12T10:48:01.913 に答える
1

tableHeaderView プロパティを使用します。

テーブルの上に表示されるアクセサリ ビューを返します。

@property(nonatomic, retain) UIView *tableHeaderView

テーブル ヘッダー ビューは、セクション ヘッダーとは異なります。

http://developer.apple.com/library/ios/#documentation/uikit/reference/UITableView_Class/Reference/Reference.html

于 2013-02-11T15:27:41.597 に答える
0

正面を見ることができます。

[view bringsubviewtofront];
于 2013-02-12T10:42:50.533 に答える
0

テーブル ビューの上に非表示/表示するビューが、グローバル変数として宣言された topView であると仮定します。.h で topView を次のように宣言します。

 UIView *topView;

UITableViewController オブジェクトが tableViewController であると仮定して、tableViewController クラスの viewDidLoad で topView を初期化します。

-(void)viewDidLoad
{
         topView=[[UIView alloc] initWithFrame:yourNeededFrameSize];
         [self.tableView addSubview:topView];//tableView is a property for UITableViewController inherited class 
         topView.hidden=YES;//Hide it initially for the first time. 
}

ここで UITableViewDelegate メソッドが実装されていると仮定すると、didSelectRowAtIndexPath で行うことになります。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    if(topView.isHidden==YES)
    {
        topView.hidden=NO;
    }
    else
    {
        topView.hidden=NO;
    }

}

それが役に立てば幸い。

于 2013-02-11T15:38:14.000 に答える
0

UITableViewController の上に読み込みインジケーターを追加したいという同様の問題がありました。これを解決するために、UIView をウィンドウのサブビューとして追加しました。これで問題は解決しました。これが私がやった方法です。

-(void)viewDidLoad{
            [super viewDidLoad];
            //get the app delegate
            XYAppDelegate *delegate = [[UIApplication sharedApplication] delegate];

            //define the position of the rect based on the screen bounds
            CGRect loadingViewRect = CGRectMake(self.view.bounds.size.width/2, self.view.bounds.size.height/2, 50, 50);
            //create the custom view. The custom view is a property of the VIewController
            self.loadingView = [[XYLoadingView alloc] initWithFrame:loadingViewRect];
            //use the delegate's window object to add the custom view on top of the view controller
            [delegate.window addSubview: loadingView]; 
        }
于 2013-07-22T07:35:04.457 に答える