UIScrollView zoom in/out center

UIScrollView在放大的时候可以居中,但是缩小的时候总是跑到左上角,在网上找了好久,经过验证,以下是最完美的解决方案:

#pragma mark - UIScrollViewDelegate
-(UIView*)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
    for(UIView *view in scrollView.subviews)
    {
        if([view isMemberOfClass:[UIImageView class]])
        {
            return view;
        }
    }
    return nil;
}// 使居中
-(void)scrollViewDidZoom:(UIScrollView *)scrollView
{
    CGFloat top = 0, left = 0;
    if (self.scrollView.contentSize.width < self.scrollView.bounds.size.width) {
        left = (self.scrollView.bounds.size.width-self.scrollView.contentSize.width) * 0.5f;
    }
    if (self.scrollView.contentSize.height < self.scrollView.bounds.size.height) {
        top = (self.scrollView.bounds.size.height-self.scrollView.contentSize.height) * 0.5f;
    }
    self.scrollView.contentInset = UIEdgeInsetsMake(top, left, top, left);
}
时间: 2024-07-30 05:28:58

UIScrollView zoom in/out center的相关文章

【API】高德地图API JS实现获取坐标和回显点标记

1.搜索+选择+获取经纬度和详细地址 2.回显数据并点标记 3.实现 第一步:引入资源文件 <!--引入高德地图JSAPI --><script src="//webapi.amap.com/maps?v=1.3&key=在官网申请一个key"></script><!--引入UI组件库(1.0版本) --><script src="//webapi.amap.com/ui/1.0/main.js">

2017高德地图API WEB开发(key申请,地图搭建)简约教程

前端时间因为公司需要研究 了一下百度的教程 然后写个简约的笔记记录一下自己学习的收获,只为了满足自己暂时的写作热情 高德地图WEB开发(key申请.api)简约教程 1.首先我们需要去"高德地图开发平台" 通过"百度搜索 "或者"谷歌搜索 " 高德地图然后会有一个高德开发平台|高德地图apl 2.登录高德开发平台 这是高德开发平台的官网,然后点击登录,没有注册就好 3.进入控制台创建新应用 进入控制台之后选择"应用管理"然后点

GoogleMap API 入门 —— 加载

1.引入GoogleMap js包 可以选择联网 <script type="text/javascript" src="http://ditu.google.cn/maps/api/js?sensor=false"></script> 也可以选择下载,然后本地运行 <script type="text/javascript" src="googleMap.js?sensor=false">

OpenLayers.Map的一些特殊事件

开年上班的第二天,无意中看到一些没见过的事件,特地来给广大人民群众报个信. 众所周知的,map里面的 eventListeners 支持的事件挺多的,比如: 1 var map = new OpenLayers.Map({ 2 div: "map", 3 allOverlays: true, 4 layers: [layer1, layer2], 5 zoom: 6, 6 center: [0, 0], 7 eventListeners: { 8 move:function(){} 9

re.match re.search re.findall区别

re正则表达式里面,常用的三种方法的区别. re.macth和search匹配得到的是match对象,findall得到的是一个列表. match从字符串开头开始匹配,search返回与正则表达式匹配的第一个子串,findall则返回所有匹配到的. 如果要匹配的东西是字符串中唯一的只有一个或者直线那个取一个,最好不用findall,findall能匹配所有必然会查找整个字符串,search找到一个就结束查找了.废话不多说,选取一个页面源码大的网页,例如获取新浪网页的编码. #coding=utf

高德地图定位

<input class="map_input_id" type="hidden" data-name-id="瑞泰口腔医院" data-map-wd="39.880629" data-tel-id="010-59361200" data-map-jd="116.388211" data-img-id="http://p0.meituan.net/dpdeal/c344a

Angularjs+node+Mysql实现地图上的多点标注

注:本文适合对于node有一定基础的人,如果您是小白,请先用1个小时学习node.node文档https://nodejs.org/en/docs/ 该片博文的源码地址:https://github.com/zhangxy1035/Gould 一.项目介绍 近几年,在大数据的驱动下,数据可视化变的越来越重要,其中现在比较火的就是地理位置可视化,在这篇文章中,将使用node作为服务器,angularjs作为前台显示,mysql作为数据库,实现地图上的多点标注.系统架构建设简单,可复用性高. 在这里

初识SFDC创建一个google map(添加了marker小图标让他可以去到你输入的经纬度上)

1 <apex:page > 2 <head> 3 <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 4 <script type="text/javascript" src="http://maps.google.cn/maps/api/js?sensor=false"></scr

初识SFDC创建一个google map(添加了marker小图标上的小框框InfoWindow可变更文字)

1 <apex:page > 2 <head> 3 <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 4 <script type="text/javascript" src="http://maps.google.cn/maps/api/js?sensor=false"></scr