我測試使用UISlider一個UIView如在下面的示例圖像:調整大小一個UIView,但通過的drawRect繪製完成後也改變大小
我有一個自定義的UIView繪製灰色方塊的黃色背景,drawRect方法是這樣的:
-(void)drawRect:(CGRect)rect{
NSLog(@"Draw rect called");
UIBezierPath* squarePath = [UIBezierPath bezierPathWithRect: CGRectMake(10, 10, 100, 100)];
[UIColor.grayColor setFill];
[squarePath fill];
}
而我的幻燈片的方法改變價值:
- (IBAction)changeValue:(id)sender {
CGAffineTransform transform = CGAffineTransformScale(CGAffineTransformIdentity, self.slider.value, self.slider.value);
self.tableView.transform = transform;
[self.tableView setNeedsDisplay];
}
我不明白爲什麼廣場越來越大。我注意到每次移動滑塊時都會調用drawRect。如果發生這種情況,爲什麼方形尺寸會發生變化?它不應該保持相同的大小,只是框架與左上角的廣場一起增長?
我的第二個問題是,我將如何更改代碼,以便框架增長並且圖形大小保持不變?我問這個問題,因爲實際上我希望繪圖大小在drawRect中使用我自己的代碼進行動態更改。
任何指針將非常感激!謝謝!