画面にテーブルビューが表示されている(XCodeテーブルテンプレート)を想定しています。以下の画像はtabBar,Navigationなど入っていますが、気にしないでください。
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に文字列を設定し、表示させています。
これをフリックして、テーブルの上部を表示させると以下のようになります。
そして、フリックのスライドを感知して、別の動作をさせることも可能です。
– (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)ようにしています。