0

UITableViewがあり、セルにUITableViewCellクラスを使用しています。セル内では、ラベルを使用して会社のデータを表示しています。

必要なのは、ユーザーが会社のタイトルをクリックしたときにブラウザーで会社のWebサイトを開くか、ユーザーが表示されたメールアドレスをクリックしたときにメールアプリを開くことです(ただし、ユーザーがセルの他の部分に触れても何も起こりません)。

1つの「小さな」ものを除いて、技術的にはすべて正常に機能しています(ジェスチャ認識機能、サファリの開封、メールなど)。これらのURL(Webまたは電子メール)をtouchrecognizerセレクターメソッドに渡す方法がわかりません。

何か案は?

4

3 に答える 3

4

テーブルビューでタップ位置を取得し、さらにその位置のindexPathを取得できると思います。

- (void) handleGestureRecognizer:(UIGestureRecognizer *)recognizer {
    CGPoint tapPoint = [recognizer locationInView:self.tableView];
    NSIndexPath * indexPath = [self.tableView indexPathForRowAtPoint:self.tableView];
    // Do whatever you want with indexPath.section, indexPath.row information
}
于 2012-10-06T19:01:04.887 に答える
4
- (void)tapAction:(UITapGestureRecognizer *)tap {
UILabel *currentLabel = (UILabel *) tap.view;
NSString *labelText= currentLabel.text;
   }

あなたはこれを試すことができます..これは私のために働きます!!

于 2012-11-26T07:03:19.177 に答える
1

データは静的であるため、会社のタイトル ラベルに非表示のボタンを配置できます。

アクションでは、rowAtIndexPath に等しいすべてのボタンにタグを付けます。

ここで int tag=button.tag;

Web サイトのリンクを配列で取得している場合は、次のようになります。

ボタンアクションで、リンクを次のように取得します

NSString *urlString=[websteArray objectAtIndex:tag];
                    OR
NSString *urlString=[NSString stringWithFormat:@"http://%@",[websteArray objectAtIndex:indexPath.row]];

NSLog(@"the strurl is %@",urlString);



[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];
于 2012-10-07T06:50:04.213 に答える