时间: 2019-12-01阅读: 48标签: 事件说明
1、图片聊天背景拉伸不失真
openlayers地图加载时,默认会有9个交互事件其中可以看到控制双击缩放事件的DoubleClickZoom我们知道在绘制线时,结束的响应事件也是双击,所以在绘制线时和双击缩放事件就会冲突了。
2、捏合、双击、下拉缩放
解决方案
3、保存UIImage到本地
const dblClickInteraction = map .getInteractions() .getArray() .find(interaction = { return interaction instanceof ol.interaction.DoubleClickZoom; });map.removeInteraction(dblClickInteraction);
4、绘制、解压图片
0)、用原尺寸绘制
1)、修改大小绘制,免得每次拿原始大图片缩放显示
2)、实例
附录:
1、压缩图片
0、写在前面
1)、图片,显示模式为缩放以充满全屏,需要注意,剪切超出View的部分,否则有时有问题。
self.photoImgV.contentMode = UIViewContentModeScaleAspectFill;
self.photoImgV.clipsToBounds = YES;
1、图片聊天背景拉伸不失真
1)、方法1,比较老的
UIImage *originalImage = [UIImage imageNamed:@"sub.png"];
finalImage = [originalImage stretchableImageWithLeftCapWidth:originalImage.size.width/2 topCapHeight:0];
2)、方法2,比较新的
UIImage *originalImg = [UIImage imageNamed:@"sub"];
CGFloat protectH = originalImg.size.height/2;
CGFloat protectW = originalImg.size.width/2;
UIEdgeInsets protectEdg = UIEdgeInsetsMake(protectH, protectW, protectH, protectW);
UIImage *finalImg = [originalImg resizableImageWithCapInsets:protectEdg resizingMode:UIImageResizingModeStretch];
后续补充:
根据情况,设置 Insets ,不一定都要取中点。意义为,分别保护 {0, 0, 0, 0} 到 {top, left, bottom, right} 距离的图片。
2、捏合、双击、下拉缩放
1、捏合缩放
1)、设置最大、最小缩放比例
scrollview.maximumZoomScale = 2.0;
scrollview.minimumZoomScale = 0.5;
2)、设置代理
scrollview.delegate = self;
3)、添加上ImageView
imageView.tag = 101;
[scrollview addSubview:imageView];
4)、给代理要缩放的View(不一定要添加上才可以缩放,可以缩放不在本 scrollview 的View,效果就很奇葩了)
- (nullable UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
UIImageView *imageView = [scrollView viewWithTag:101];
return imageView;
}
2、双击缩放
0)、需要注意的地方:
0-1)、scrollView要设最大/小缩放比例!
0-2)、因为图片层在最上面,且默认不可交互,所以,图片的View记得userInteractionEnabled = YES 。
0-3)、ScrollView需要缩小尺寸,重设contentsize的时候,如删除某照片,要先清掉超出的的控件、数据。否则拉到底,弹性的时候,还能看到之前的。
1)、scrollView才可以缩放,所以要把ImageView加在scrollView,给scrollView添加手势识别。
本文由10bet发布于Web前端,转载请注明出处:iOS:图片相关(18-01-24更)
关键词: