Ios 旋转后修改UIView的高度和宽度

Ios 旋转后修改UIView的高度和宽度,ios,objective-c,uiview,Ios,Objective C,Uiview,我有一个UIView,它作为子视图添加到我的视图控制器中。我想将UIView旋转到任意角度,然后修改视图的宽度和高度。我有一个UITextField和按钮来设置角度 -(void) setAngle: (UIButton *) sender { angle = [myText.text floatValue]; angle *= (M_PI)/180.0; self.transform = CGAffineTransformMakeRotation(angle); }

我有一个UIView,它作为子视图添加到我的视图控制器中。我想将UIView旋转到任意角度,然后修改视图的宽度和高度。我有一个UITextField和按钮来设置角度

-(void) setAngle: (UIButton *) sender
{
    angle = [myText.text floatValue];
    angle *= (M_PI)/180.0;
    self.transform = CGAffineTransformMakeRotation(angle);
}
和两个UISlider来相应地修改高度和宽度

-(void)sliderAction1:(id)sender
{
    w = (CGFloat)slider1.value;
    CGRect myRect= CGRectMake(x, y, w, h);
    self.bounds = myRect; 
}
-(void)sliderAction2:(id)sender
{
    h = (CGFloat)slider2.value;
    CGRect myRect= CGRectMake(x, y, w, h);
    self.bounds = myRect;  
}
我做了研究,发现在使用CGAffineTransformMakeRotation之后,我不能使用setFrame。边界的问题在于,它从两端修改UIView的宽度和高度。i、 e.UIView的起源也在变化。有没有办法只从一端延伸宽度

-(void)sliderAction1:(id)sender
{
 CGFloat w = (CGFloat)slider1.value;
 CGRect myRect= CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y, w,      self.view.frame.size.height);
 self.view.frame = myRect;
}
它从一边改变宽度对我有用。变化非常小,因为滑块值在0-1之间,所以如果将w乘以100或1000,它将反映在主视图中

在乘法后使用这个

 CGRect myRect= CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y, w*100,      self.view.frame.size.height);

你不应该这样修改边界。通常不修改bounds属性

尝试使用

CGAffineTransformScale不是CGAffineTransformMakeScale。使用Make可以有效地重置变换矩阵

CGAffineTransformScale(self.rotationTransform, x, y);

它在旋转前工作。旋转后它不能正常工作。正如我在问题中提到的,我不认为在使用transform后可以设置帧。它对我所问的问题有效,所以我接受答案。但我刚刚意识到,如果我在视图中绘制一些东西,它也会缩放图形。我想要的是在增加视图的大小后为绘图提供更多的空间。任何帮助都将不胜感激。我环顾四周,其他人也在修改边界。也许只是根据滑块值修正原点?Ex,x=w-自框尺寸宽度/2;不确定是否会给出正确的结果,但我相信您可以调整以找到正确的偏移量。