如果我单击ImageView中的任何位置,则在TextView中显示TextView和键入文本

时间:2014-03-18 05:38:00

标签: ios iphone objective-c uiimageview uitextview

我想显示TextView,我想在TextView中键入文本。 每当我点击或触摸ImageView中的任何位置时。

这里实际上我为TextView设置了UITapGestureRecognizer。 一旦我在TextView中键入文本,它应该是自动保存的。

这里我设置了ImageView.After我设置了SubView,在SubView里面我设置了ImageView for Zoom。 现在我得到了缩放图像。确切地说,如果我单击或触摸Zoom ImageView中的任何位置,它应该显示TextView以及在TextView中输入文本后,它应该是自动保存的。

但每当我在Zoom ImageView中单击或触摸时,我都无法获取TextView。

我怎么能得到它?

低于.h部分

  #import <UIKit/UIKit.h>
  @interface GalleryCameraBusinessViewController : UIViewController<UIImagePickerControllerDelegate,UITextViewDelegate,UIGestureRecognizerDelegate>
  {

     UIView *dynamicView;
     UIImageView *dynamicImage;
     UITextView *textView;
     UITextView * textviewtext;

  }
  - (IBAction)backtobusinesscard:(id)sender;
  @property (strong, nonatomic) IBOutlet UISwitch *swit;
  - (IBAction)switchaction:(id)sender;
  @property (strong, nonatomic) IBOutlet UIImageView *pickingimageofcamgal;
  @property (strong, nonatomic) IBOutlet UITextField *enternametextfld;

  @end

.m Part

  #import "GalleryCameraBusinessViewController.h"
  @interface GalleryCameraBusinessViewController ()
  @end
  @implementation GalleryCameraBusinessViewController
  @synthesize swit,pickingimageofcamgal,enternametextfld;
  - (void)viewDidLoad
  {
     [super viewDidLoad];
   // Do any additional setup after loading the view.
     [self tapdetected];
  }
  - (void)viewWillAppear:(BOOL)animated
  {
      UITapGestureRecognizer *tapgesture =[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapdetected)];
      tapgesture.numberOfTouchesRequired =1;
      tapgesture.numberOfTapsRequired =1;
      pickingimageofcamgal.userInteractionEnabled =YES;
     [pickingimageofcamgal addGestureRecognizer:tapgesture];




      UITapGestureRecognizer *tapgesture1 =[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapdetected1)];
      tapgesture1.numberOfTapsRequired =1;
      tapgesture1.numberOfTouchesRequired =1;
      pickingimageofcamgal.userInteractionEnabled =YES;
      [pickingimageofcamgal addGestureRecognizer:tapgesture1];



      UITapGestureRecognizer *tapgesture2 =[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapdetected2)];
      tapgesture2.numberOfTouchesRequired =1;
      tapgesture2.numberOfTapsRequired =1;
      pickingimageofcamgal.userInteractionEnabled=YES;
      [pickingimageofcamgal addGestureRecognizer:tapgesture2];




      //    UITapGestureRecognizer  *tapgesture3 =[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapdetected3)];

     //    tapgesture3.numberOfTapsRequired =1;
     //     dynamicView.userInteractionEnabled =YES;
     //    [dynamicView addGestureRecognizer:tapgesture3];




      UITapGestureRecognizer *tapgesture4 = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapdetected4)];
      tapgesture4.numberOfTapsRequired=1;
      tapgesture4.numberOfTouchesRequired =1;
      tapgesture4.delegate =self;
      dynamicImage.userInteractionEnabled =YES;
      [dynamicImage addGestureRecognizer:tapgesture4];
      NSLog(@"textview is==%@",textviewtext);
   }
    - (void)didReceiveMemoryWarning
   {
      [super didReceiveMemoryWarning];
      // Dispose of any resources that can be recreated.
   }

    - (IBAction)backtobusinesscard:(id)sender
   {
      [self.navigationController popViewControllerAnimated:YES];

   }
   -(void)tapdetected
   {
      UIImagePickerController*picker =[[UIImagePickerController alloc]init];
      picker.sourceType =UIImagePickerControllerSourceTypePhotoLibrary;
      picker.delegate =self;
      [self presentViewController:picker animated:NO completion:nil];
   }
   -(void)tapdetected1
   {

     UIImagePickerController *picker =[[UIImagePickerController alloc]init];
     picker.sourceType =UIImagePickerControllerSourceTypeCamera;
     picker.delegate =self;
     [self presentViewController:picker animated:NO completion:nil];
   }

  -(void)tapdetected2
   {

      //For dynamically creating view
         dynamicView =[[UIView alloc]initWithFrame:CGRectMake(10, 70, 280, 300)];
         dynamicView.backgroundColor=[UIColor whiteColor];
         [self.view addSubview:dynamicView];


     //For dynamically creating imageview
        dynamicImage =[[UIImageView alloc]init];
        dynamicImage.frame=CGRectMake(10, 60, 280, 300);
        [dynamicImage setUserInteractionEnabled:YES];
        dynamicImage.image =pickingimageofcamgal.image;
        [dynamicView addSubview:dynamicImage];
    }
    //-(void)tapdetected3
    //{
    //    textviewtext =[[UITextView alloc]initWithFrame:CGRectMake(20, 120, 120, 53)];
    //    textviewtext.backgroundColor=[UIColor redColor];
    //    [textviewtext setDelegate:self];
    //    textviewtext.text=@"Welcome to textview";
    //    [dynamicView addSubview:textviewtext]; +

    //}
     -(void)tapdetected4
     {
       textviewtext =[[UITextView alloc]initWithFrame:CGRectMake(0, 0, 50, 50)];
       textviewtext.backgroundColor = [UIColor blueColor];
       [textviewtext setDelegate:self];
       textviewtext.text=@"HI";
       [dynamicImage addSubview:textviewtext];
     }

    - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
    {
       pickingimageofcamgal.image =[info objectForKey:UIImagePickerControllerOriginalImage];
       picker.delegate=self;
       [picker dismissViewControllerAnimated:YES completion:nil];
    }



    - (void)imagePickerControllerDidCancel:(UIImagePickerController*)picker
    {
       [picker dismissViewControllerAnimated:YES completion:nil];
    }

    - (IBAction)switchaction:(id)sender
    {
       if(swit.isOn)
       {
         [self tapdetected];
       }
       else
       {
         [self tapdetected1];
       }
    }}

1 个答案:

答案 0 :(得分:0)

实际上你需要修改一些行,因为你在分配动态视图之前创建了tapgesture4,这就是它显示为null的原因,现在你只需做一个简单的更改,只需将tapgesture4转换为tapdetected2方法现在检查,它确实适合你。

-(void)tapdetected2
{

  //For dynamically creating view
     dynamicView =[[UIView alloc]initWithFrame:CGRectMake(10, 70, 280, 300)];
     dynamicView.backgroundColor=[UIColor whiteColor];
     [self.view addSubview:dynamicView];


 //For dynamically creating imageview
    dynamicImage =[[UIImageView alloc]init];
    dynamicImage.frame=CGRectMake(10, 60, 280, 300);
    [dynamicImage setUserInteractionEnabled:YES];
    dynamicImage.image =pickingimageofcamgal.image;
    [dynamicView addSubview:dynamicImage];

UITapGestureRecognizer *tapgesture4 = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapdetected4)];
  tapgesture4.numberOfTapsRequired=1;
  tapgesture4.numberOfTouchesRequired =1;
  tapgesture4.delegate =self;
  dynamicImage.userInteractionEnabled =YES;
  [dynamicImage addGestureRecognizer:tapgesture4];
  NSLog(@"textview is==%@",textviewtext);


}