表示領域外部(上部)にラベルを配置し、フリックにて表示させる

画面にテーブルビューが表示されている(XCodeテーブルテンプレート)を想定しています。以下の画像はtabBar,Navigationなど入っていますが、気にしないでください。

852-1

RootViewControllerのviewDidLoadメソッドに以下のコードを設定。

CGRect rect = self.tableView.bounds;

rect.origin.y -= 50;

rect.size.height = 50;

 

UILabel *flickArea = [[UILabel alloc] initWithFrame:rect];

//label文字設定

 triggerHeader.textColor = [UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1.0];

 triggerHeader.backgroundColor = [UIColor colorWithRed:0.914 green:0.082 blue:0.475 alpha:1.0];

 triggerHeader.font = [UIFont boldSystemFontOfSize:[UIFont buttonFontSize]];

 triggerHeader.textAlignment = UITextAlignmentCenter;

 

flickArea.text = @”設定文字列;

[self.tableView addSubview:flickArea];

 

[flickArea release];

上記のコード内の、1行目は、テーブルビューのbounds(起点座標、表示領域サイズ)を取得します。それを元に、取得したY座標から”−50”の地点に「rect」の起点座標を設定し、高さも”50”に設定します。

その座標にUILabelを配置しています。

コメントアウトの「Label文字設定」となっている数行は、表示させるラベルの見た目を設定しています。

UIFont 、UIColore の詳細については、こちらのサイトが詳しいです。
http://iphone-tora.sakura.ne.jp/uifont.html
http://iphone-tora.sakura.ne.jp/uicolor.html

その後、そのUILabelに文字列を設定し、表示させています。

これをフリックして、テーブルの上部を表示させると以下のようになります。

852-2そして、フリックのスライドを感知して、別の動作をさせることも可能です。

– (void)scrollViewDidScroll:(UIScrollView *)scrollView {

 

CGRect r = self.tableView.bounds;

r.origin.y -= 50

r.size.height = 50;

 

//NSLog(@”%lf”,r.origin.y);

if (r.origin.y <= –100) {

 

//ここに対応させたいアクションを記述

 

NSLog(@”フリックされました!);

 

}

scrollViewDidScroll メソッドを使っています。コメントアウトしているNSLog部分は、デバッガコンソール上で、スクロールの動作確認をする場合に便利なので記載しています。確認するには、コメントアウトを解除してください。

r.origin.y の値を取得し、初期設定のr.origin.y  = -50 を基準として、フリックによるスライドの幅が”-50”以上の場合( <= -100)は動作させる(この場合はNSLog)ようにしています。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です