【发布时间】:2015-10-17 20:26:55
【问题描述】:
我正在使用 UISlider 测试 UIView,如下图示例所示:
我有一个黄色背景的自定义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 中使用我自己的代码动态更改绘图大小。
任何指针将不胜感激!谢谢!
【问题讨论】: