使用 addSubView 将视图添加到另一个视图后调整视图大小

Resize a view after adding it to another view using addSubView

我有一个名为 painView 的视图,在我添加它后大小为 (40 , 40 ) 我想在调整到 (20, 20) 大小时对其进行动画处理,但即使没有动画,它在添加后也不会改变它的大小,只有它的位置,而且我没有使用自动布局..

dragView* paintView=[[dragView alloc]initWithFrame:CGRectMake(x, y, 40,40  )];
        UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"coolPoint.png" ] ];
        imgView.userInteractionEnabled = NO;
        imgView.clipsToBounds = YES;

        imgView.contentMode = UIViewContentModeScaleToFill;
        imgView.frame = CGRectMake(0, 0, paintView.frame.size.width,paintView.frame.size.height );
        [paintView addSubview:imgView];
        [self.canvasView addSubview:paintView];
        [UIView beginAnimations:@"animateAddContentView" context:nil];
        [UIView setAnimationDuration:0.4];
        paintView.frame = CGRectMake(x, y, 20, 20);
        [UIView commitAnimations];

你的paintView变了,而imageView(imgView)没变。将 paintView 的 clipsToBounds 设置为 YES 以检查它。所以当你改变paintView的frame时,imgView的frame也随之改变。