我正在尝试将图像绘制到覆盖drawRect的UIView子类中。此图像绘制类需要移动和缩放功能,因此我将其作为滚动视图的子视图。
我的问题是我的图像似乎被屏幕或scrollView边界(图像大于屏幕)裁剪。我不知道为什么,这似乎是非常基本的东西。
我的ViewController中的视图层次结构如下所示:
View Controller
View
ScrollView
MapView
我为滚动视图和地图视图(实现drawRect的视图)创建了出口。
用于配置滚动视图的我的ViewController初始设置代码如下所示:
- (void)viewDidLoad
{
[super viewDidLoad];
scrollView.delegate = self;
scrollView.contentSize = CGSizeMake(450, 476);
scrollView.minimumZoomScale = 0.6;
scrollView.maximumZoomScale = 6.0;
}
我的drawRect实现:
- (void)drawRect:(CGRect)rect
{
UIImage *myImage = [UIImage imageNamed:@"map.jpg"];
CGRect rectangle = CGRectMake(0,0,450,476);
[myImage drawInRect:rectangle];
}
图像在滚动视图中是可拖动和可缩放的,但它会在屏幕边界处被裁剪。
任何帮助都将不胜感激。
答案 0 :(得分:0)
您的问题可能在drawInRect
。从UIImage类的文档:
drawInRect:
Draws the entire image in the specified rectangle, scaling it as needed to fit.
根据需要将该矩形放大,并将其置于UIImageView中心。这个问题在这里得到解答UIScrollView image/photo viewer with paging enabled and zooming
答案 1 :(得分:0)
drawRect不能在作为参数传递的rect之外绘制到drawRect方法,这是由视图框架决定的。使视图1200,1200并确保在所有包含视图上禁用了clipToBounds。