1

電話番号である変数がありagency.phone、番号がビューに表示されるラベルがありますagencyPhone

ラベルをクリックして番号に電話できるようにしたいのですが、このコードを見つけましたが、私の状況でそれを実装する方法がわかりません:

NSString *phoneNumber = [@"tel://" stringByAppendingString:mymobileNO.titleLabel.text];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];

初心者を助けてくれてありがとう!

4

4 に答える 4

7

IB でラベルを作成し、このコードを .m ファイルに追加します。

    - (void)viewDidLoad
    {
        [super viewDidLoad];

        UITapGestureRecognizer* phone1LblGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(phone1LblTapped)];
        // if labelView is not set userInteractionEnabled, you must do so
        [agencyPhone setUserInteractionEnabled:YES];
        [agencyPhone addGestureRecognizer:phone1LblGesture];
    }

    - (void)phone1LblTapped
    {
        UIDevice *device = [UIDevice currentDevice];
        if ([[device model] isEqualToString:@"iPhone"] ) {
            NSString *phoneNumber = [@"tel://" stringByAppendingString:agencyPhone.text];
            [[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];
        } else {
            UIAlertView *Notpermitted=[[UIAlertView alloc] initWithTitle:@"Alert" message:@"Your device doesn't support this feature." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
            [Notpermitted show];
        }
    }
于 2013-03-08T14:36:06.760 に答える
4

ラベルをボタンに切り替え、貼り付けたコードを追加して、ボタンが押されたときに実行されるようにする必要があります。

例えば:

- (void)callPhoneNumber:(id)sender {
  NSString *phoneNumber = [@"tel://" stringByAppendingString:mymobileNoButton.titleLabel.text];
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];
}
于 2013-03-08T14:32:12.203 に答える
1

クリック可能にするUITapGestureRecognizerために使用する必要がありますUILabel

UITapGestureRecognizer* gesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(yourClickMethod:)];
[titleLabel setUserInteractionEnabled:YES];
[titleLabel addGestureRecognizer:gesture];

-(voidyourClickMethod{
NSString *phoneNumber = [@"tel://" stringByAppendingString:mymobileNO.titleLabel.text];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];
}

userInteractionEnabled = YESのプロパティを設定していることを確認してくださいUILabel

于 2013-03-08T14:35:49.613 に答える
1

を使用して UILabel のクリックを処理できますtouchesBegan

-(void)touchesBegan:(NSSet *) touches withEvent:(UIEvent *)event
{
    UITouch *touch = [[event allTouches] anyObject];
    CGPoint point = [touch locationInView:self.view];
    CGRect labelRect = yourLabel.frame;
    if( CGRectContainsPoint (labelRect, point))
    {
       //label was clicked
       //Add phone number handling code here
    }  

}
于 2013-03-08T14:36:25.033 に答える