-(void)btnClick:(IdleTopChoseBtn *)btn{
btn.selected = YES;
_choseBtn.selected = NO;
_choseBtn = btn; CGPoint point = btn.center;
CGFloat absoultX = self.scrollView.bounds.size.width/2.0;
if (self.scrollView.contentSize.width<=self.scrollView.bounds.size.width) return;
if (point.x>absoultX&&self.scrollView.contentSize.width-point.x>absoultX) {
//判断点击的按钮的中心点X和scroview的内容宽度减去按钮中心X坐标的长度都大于scroview的一般宽度的时候,才开始向中心移动
[UIView animateWithDuration:0.3 animations:^{
self.scrollView.contentOffset = CGPointMake(point.x-absoultX, 0);
}];
}
if (point.x<absoultX) {
//判断点击按钮的中心X小于scroview一般宽度的时候,设置scoview的偏移量为0;
[UIView animateWithDuration:0.3 animations:^{
self.scrollView.contentOffset = CGPointMake(0, 0);
}];
}
if (self.scrollView.contentSize.width-point.x<absoultX) {
//判断scroview的内容宽度减去点击按钮的中心X的距离小于scroview一半宽度的时候,将scroview滑动到最右边。
self.scrollView.contentOffset = CGPointMake(self.scrollView.contentSize.width-self.scrollView.bounds.size.width, 0);
} }

UIScrollView上面的UIButton点击始终在中间的更多相关文章

  1. UITableView或UIScrollVIew上的UIButton的高亮效果

    UITableView或UIScrollVIew上的UIButton的高亮效果 原文地址:http://www.jianshu.com/p/b4331f06bd34 最近做项目的时候发现,UIScro ...

  2. iOS for循环创建button,button的宽度依据上面的文字来自适应.

    近期须要使用一个标签页,寻思自己写一个demo. 标签的大小依据上面的文字来自适应大小,须要依据后台返回的数据自己主动换行.没有加入 NSArray *arr = @[@"无知", ...

  3. 在Eclipse中设置Java类上面的注释(包含作者、日期等)

    希望在Eclipse中,让Java类上面的注释像下面这样,改如何设置呢? 在Eclipse中,点击菜单中的Window-->Preferences,打开如下窗口:

  4. UITableViewCell上的按钮点击事件处理

    转自:  http://www.aichengxu.com/view/42871 UITableViewCell上的按钮点击事件处理,有需要的朋友可以参考下. 今天突然做项目的时候,又遇到处理自定义的 ...

  5. 5步解决移动设备上的300ms点击延迟

    译者:jmouse 大多数基于触摸的浏览器设备,在点击时都会有个 300ms 的事件触发等待时间,做过 web app 开发的同学应该都遇到过这个情况,通过下面的5步可以轻松搞定这个延迟. 1.不要太 ...

  6. 给View添加手势,防止点击View上其他视图触发点击效果

    在开发过程中,我们可能会遇到这个问题. 当我们给一个view添加了手势,但是我们又不想点击view上面的视图也触发手势.如下图: 我们在红色view上添加了手势,但是又不想点击黄色view也触发.其实 ...

  7. js 移动端写搜索时怎么调用软键盘上面的搜索按钮

    这段时间一直在做移动端,所以遇到很多问题,现在很多网站在做移动端搜索的时候都不会在后面加一个搜索按钮,而是直接调用输入法上面的搜索搜索按钮进行搜索 input的一个新属性给我们提供非常方便的书写, 就 ...

  8. python获取动态网站上面的动态加载的数据(初级)

    我们在处理一些网站数据的时候,有时候我们需要的数据很多都是动态加载的,而不都是静态的,以下以一个实例来介绍简单的获取动态数据,首先申明本人小白,还在学习python中,这个方法还是比较笨拙的,但是对于 ...

  9. 把git上面的scala工程转为eclipse工程

    1,安装sbt工具,url:https://www.cnblogs.com/zeling/p/8494828.html 2,把插件添加到plugins.sbt文件中: addSbtPlugin(&qu ...

随机推荐

  1. YARN Resource Management

    https://www.jianshu.com/p/b9245242472b https://stackoverflow.com/questions/42637631/what-does-virtua ...

  2. Python类中的装饰器在当前类中的声明与调用

    [本文出自天外归云的博客园] 我的Python环境:3.7 在Python类里声明一个装饰器,并在这个类里调用这个装饰器.代码如下: class Test(): xx = False def __in ...

  3. 【转】JAVA反射与注解

    转载自:https://www.daidingkang.cc/2017/07/18/java-reflection-annotations/ 前言 现在在我们构建自己或公司的项目中,或多或少都会依赖几 ...

  4. React Native常用组件之ListView

    1. ListView常用属性 ScrollView 相关属性样式全部继承 dataSource ListViewDataSource 设置ListView的数据源 initialListSize n ...

  5. redis 集群搭建碰到的问题

    make PREFIX=/usr/local/redis install把编译好的redis 安装到指定目录下. redis.conf文件从源码目录拷贝到/usr/local/redis(安装目录)下 ...

  6. js 暂时存储 sessionStorge

    H5的storage有sessionstorage&localStorage,其中他们的共同特点是API相同 下面直接上代码,storage中的存储与删除: <!DOCTYPE html ...

  7. Linux 文件系统剖析

    [转自]https://www.ibm.com/developerworks/cn/linux/l-linux-filesystem/ 按照分层结构讨论 Linux 文件系统 在文件系统方面,Linu ...

  8. [todo] 3rd

    十个 Laravel 5 程序优化技巧

  9. 微信小游戏下socket.io的使用

    参考: 微信小游戏:socket.io 一 在微信小游戏 中使用socket.io报错 因为项目需求,后端要使用nodejs简单搭建一个服务器,通讯用json格式. 使用Egret提供的socket. ...

  10. thinkphp 在本地正常,在云端ubuntu下报控制器不存在

    thinkphp 在本地正常,在云端ubuntu下报控制器不存在的错 ubuntu是严格区分大小写的,本地的服务器可能对大小写要求没有那么严格, thinkphp的控制器的文件夹默认是小写字母,如果你 ...