我的应用程序有2个视图,并且在覆盖视图上有一个UITextView
和一个UIButton旁边。
当TextView应该变小时点击按钮(从CGRectMake(0, 50, self.view.frame.bounds.size.width, 100)
到
CGRectMake(0, 50, self.view.frame.bounds.size.width, 50)
),然后在第二次点击时它会再次变大。
以下是我如何管理这个问题的代码:
-(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;
}
}
我的问题是,当我这样做时,我无法在不设置委托的情况下处理像textViewDidBeginEditing:(UITextView *)textView
这样的UITextView的委托方法。但是当我在重新创建TextView之后设置像self.textView.delegate = self
这样的委托时,单击它时没有任何反应。没有键盘出现,也没有调用事件。
有什么建议吗?
答案 0 :(得分:1)
在alloc
,
ViewDidLoad
textView
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)];
答案 1 :(得分:0)
试试这个,
在addSubview
中初始化和self.textView
viewDidLoad
并设置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:
的框架即可
答案 2 :(得分: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;
}
}