2014-04-08 59 views
0

我有一個應用程序與2個意見在對方的頂部,並在覆蓋視圖有一個UITextView和一個UIButton旁邊。
當我點擊按鈕後,TextView應該變小
(從CGRectMake(0, 50, self.view.frame.bounds.size.width, 100)

CGRectMake(0, 50, self.view.frame.bounds.size.width, 50)),並在第二次點擊它應該再次變大。
下面的代碼我如何管理這樣的:
當代理設置時無法點擊textView

-(IBAction)buttonTouched:(id)sender { 
    if(counter == 1) { 
    [self.textView removeFromSuperview]; 
    self.textView = nil; 
    self.textView = [[UITextView alloc] initWithFrame:CGRectMake(0, 50, self.view.frame.bounds.size.width, 50)]; 
    [self.overlayView addSubview:self.textView]; 
    counter = 2; 
    } else { 
     [self.textView removeFromSuperview]; 
     self.textView = nil; 
     self.textView = [[UITextView alloc] initWithFrame:CGRectMake(0, 50, self.view.frame.bounds.size.width, 100)]; 
     [self.overlayView addSubview:self.textView]; 
     counter = 1; 
    } 
} 

我的問題是,當我不喜歡這樣,我不能處理的UITextView的像textViewDidBeginEditing:(UITextView *)textView委託方法不設置委託。但是當我在重新創建TextView後像self.textView.delegate = self這樣設置代理時,當我點擊它時沒有任何反應。沒有鍵盤出現,也沒有調用事件。 有什麼建議嗎?

+0

你能分享任何圖片,以便我們可以看到問題嗎? – abmussani

+0

這些視圖還有很多,我只是總結了我的問題 – user2414460

回答

0

試試這個,

初始化和viewDidLoadaddSubviewself.textView並設置self.textView.delegate = self;

-(IBAction)buttonTouched:(id)sender { 
    if(counter == 1) { 

    self.textView.frame = CGRectMake(0, 50, self.view.frame.bounds.size.width, 50); 
    counter = 2; 
    } else { 

     self.textView.frame = CGRectMake(0, 50, self.view.frame.bounds.size.width, 100); 
     counter = 1; 
    } 
    [self.overlayView bringSubviewToFront:self.textView]; 
} 

只是改變self.textView框架中buttonTouched:

+0

當我這樣做時,textView顯示在我的故事板中(更小的尺寸就像我用CGRect繪製的那樣,並在另一個位置),我仍然可以'點擊它。 – user2414460

+0

你把'IBOutlet'連接到textview了嗎? – Akhilrajtr

+0

是的,我做到了.. – user2414460

1

嘗試alloc你的TextView在ViewDidLoad

self.textView = [[UITextView alloc]init]; 

and on the button click use 

[self.textView setFrame:CGRectMake(0, 50, self.view.frame.bounds.size.width, 50)]; 

and 

[self.textView setFrame:CGRectMake(0, 50, self.view.frame.bounds.size.width, 100)]; 
+0

看到Akhilrajtr的回答,它非常相似,我發佈了我得到的結果 – user2414460

0
-(IBAction)buttonTouched:(id)sender { 
    if(counter == 1) { 
    [self.textView removeFromSuperview]; 
    self.textView = nil; 
    self.textView = [[UITextView alloc] initWithFrame:CGRectMake(0, 50, self.view.frame.bounds.size.width, 50)]; 
    [self.overlayView addSubview:self.textView]; 
    counter = 2; 
    } else { 
     [self.textView removeFromSuperview]; 
     self.textView = nil; 
     self.textView = [[UITextView alloc] initWithFrame:CGRectMake(0, 50, self.view.frame.bounds.size.width, 100)]; 
     [self.overlayView addSubview:self.textView]; 
     counter = 1; 
    } 
} 
  • 在上面的代碼中僅改變 「self.view.bounds.size.width」 insted的 「self.view.frame.bounds.size.width」
  • 分配委託「self.textView的.delegate = self「之前在.h文件中 @interface ViewController:UIViewController
+0

和Akhilrajtr的回答一樣的結果.. – user2414460

+0

你的overlayView的背景顏色是什麼? 檢查你的textview是否顯示... –

+0

'[UIColor clearColor]'。它顯示出來,我看到我爲它設置的默認文本。 – user2414460