[message setBackgroundColor:[UIColor redColor]];
[message setFrame:CGRectMake(message.frame.origin.x, message.frame.origin.y, message.frame.size.width, 20)];
背景颜色发生变化,因此IB中的连接正常,但UITextView的大小不会改变。我尝试了多种方法,无法改变位置或大小。
如果我从按钮开始执行某个操作但在didFinishPickingMediaWithInfo的回调中没有。
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
[picker dismissViewControllerAnimated:NO completion:^{
[UIView animateWithDuration:0.1
delay:0.0
options: UIViewAnimationCurveEaseOut // Doesnt really matter since its so fast
animations:^{
[message setFrame:CGRectMake(message.frame.origin.x, message.frame.origin.y, message.frame.size.width, 20)];
}
completion:^(BOOL finished){[message setBackgroundColor:[UIColor redColor]]; }];
答案 0 :(得分:1)
试试这个:
[message setBackgroundColor:[UIColor redColor]];
[UIView animateWithDuration:0.1
delay:0.0
options: UIViewAnimationCurveEaseOut // Doesnt really matter since its so fast
animations:^{
[message setFrame:CGRectMake(message.frame.origin.x, message.frame.origin.y, message.frame.size.width, 20)];
}
completion:^(BOOL finished){ }];
答案 1 :(得分:0)
您从哪个方法调用此代码?有可能您的框架设置被后续更改覆盖。 viewDidLoad
中尚未设置帧大小,但应在调用viewWillAppear
时设置它们 - 因此请在此处执行其他布局。
答案 2 :(得分:0)
我最近发现,要获取UITextView的内容大小(并因此将其框架设置为“适合”其内容,不需要滚动),您需要将文本视图添加为子视图首先。在它成为子视图之前,contentSize不会返回正确的值(也许设置框架的工作方式不相似?)。
只是一个猜测......