首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >UIScrollView变焦问题(IOS 8 GM)

UIScrollView变焦问题(IOS 8 GM)
EN

Stack Overflow用户
提问于 2014-09-15 08:45:31
回答 2查看 1.2K关注 0票数 4

我在UIScrollView的一个问题上挣扎了很长时间。基本上,它是一个简单的可缩放的UIScrollView,它显示一个UIImageView

当图像被放大到最大,我们释放我的捏手势,动画是奇怪的,并没有顺利地放大到最小的缩放比例。

在苹果的例子中,它实际上是可以复制的:PhotoScroller将图片放大到最大,你就会看到这个问题。

我追踪到它是对layoutSubviews的额外调用,这个调用是在iOS 8中进行的(iOS 7工作得很好)。

有没有人遇到过这个问题,如果是的话,找到了解决办法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-21 12:35:14

我打电话给self就能解决这个问题。layoutSubviews在我的scrollViewDidZoom方法中。有点像黑客,但它似乎解决了我的问题。这可能有助于:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
- (void)scrollViewDidZoom:(UIScrollView *)scrollView{
    [self layoutSubviews];
}

将layoutSubviews重写为中心内容

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
- (void)layoutSubviews
{
[super layoutSubviews];

// center the image as it becomes smaller than the size of the screen
CGSize boundsSize = super.bounds.size;
CGRect frameToCenter = imageView.frame;

// center horizontally
if (frameToCenter.size.width < boundsSize.width){
    frameToCenter.origin.x = (boundsSize.width - frameToCenter.size.width) / 2;
}
else {
    frameToCenter.origin.x = 0;
}
// center vertically
if (frameToCenter.size.height < boundsSize.height){
    frameToCenter.origin.y = (boundsSize.height - frameToCenter.size.height) / 2;
}
else {
    frameToCenter.origin.y = 0;
}
imageView.frame = frameToCenter;
}
票数 3
EN

Stack Overflow用户

发布于 2014-09-28 18:26:58

@Jonah的修复为我解决了一个类似的问题,但重要的是不要直接调用layoutSubviews。

您可以使用以下代码实现类似和更安全的效果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
- (void)scrollViewDidZoom:(UIScrollView *)scrollView {
    [self setNeedsLayout]; // triggers a layout update during the next update cycle
    [self layoutIfNeeded]; // lays out the subviews immediately
}

有关更多信息,请参见苹果的UIView文档:参考文件/occ/instm/UIView/layoutSubview

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25852883

复制
相关文章
iOS开发之UIScrollView无限滚动
UIScrollView 的无限滚动主要应用在图片轮播器、欢迎界面等场景。首先需要说明的是,文本所讲的是一种"笨办法",但是好理解且容易实现,在图片不多的时候用它也无妨。它的原理是在要显示的图片前后各加一张图片即在第一张图片之前放最后一张图片,在最后一张图片之后放第一张图片,然后在滚动到边缘的时候,巧妙的过渡一下就可以"瞒天过海","以假乱真"的造成无限滚动的假象。网络上有很多只用三张或两张图片实现的方法,效率比这个方法高,但实现起来稍微麻烦一点,有兴趣的可以去深入研究。 实现步骤 1、根据需求准备几张图片
YungFan
2018/05/03
1.7K0
iOS开发之UIScrollView无限滚动
【iOS开发】UIScrollView 看不到内容、UIScrollView 不能滑动
初学者第一次使用 UIScrollView 的时候,很可能会遇到 UIScrollView 滑动不了,或者明明添加了内容,却看不到的问题。 这里展示最简洁、最常态化的一种在 UIScrollView 中添加可以滑动的 UIImageView 的案例。
KyXu
2019/04/11
1.6K0
【iOS开发】UIScrollView 看不到内容、UIScrollView 不能滑动
【IOS开发基础系列】UIScrollView专题
       在滚动过程当中,其实是在修改原点坐标。当手指触摸后,scroll view会暂时拦截触摸事件,使用一个计时器。假如在计时器到点后没有发生手指移动事件,那么scroll view 发送 tracking events 到被点击的subview。假如在计时器到点前发生了移动事件,那么 scroll view 取消tracking 自己发生滚动。
江中散人_Jun
2023/10/16
6730
【IOS开发基础系列】UIScrollView专题
iOS开发中解决UIScrollView滚动时NSTimer失效的问题
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/70037932
用户1451823
2018/09/13
1.4K0
iOS 用UIScrollView不能获取到touchesBegan
网上查了一下 原来UIScrollView是没有继承touchesBegan方法的 所以要自己重写UIScrollView 然后继承
全栈程序员站长
2022/09/15
4290
iOS开发UIScrollView使用详解 原
@property(nonatomic)CGPoint contentOffset;
珲少
2018/08/16
1.7K0
UIScrollView
前面两篇文章聊的UITableView和UICollectionView都是继承自UIScrollView,本篇文章就来简单聊聊UIScrollView。
拉维
2019/08/12
9090
UIScrollView
iOS滚动视图UIScrollView使用方法
滚动视图还满常见的,这里学习了一下基本所有的用法、属性设置和委托,单讲一个ScrollView也很简单,直接上代码远比一个个讲要清晰明了地多。
Cloudox
2021/11/23
1.6K0
iOS滚动视图UIScrollView使用方法
UIScrollView
UIScrollView UIScrollView全部API学习。 //1.设定滚定条的样式 typedef NS_ENUM(NSInteger, UIScrollViewIndicatorStyle) { UIScrollViewIndicatorStyleDefault, // black with white border. good against any background 黑白边框 UIScrollViewIndicatorStyleBlack, // black only. small
用户1941540
2018/05/11
1.8K0
iOS开发之UIScrollView在Autolayout下的使用
一、使用的基本原则: 原则1:UIScrollView的size依赖于subviews 首先在StoryBoard中拖入一个UIScrollView,用Pin按钮,随意设置其布局。因为设置UIScrollView的布局约束是没有用的,UIScrollView的size(即contentSize)是根据其中的subviews所占据的size来计算的。当然,如果contentSize的内容不足以布满整个UIScrollView时,滚动条将不会出现,UIScrollView也不会滚动。 原则2:subviews的
YungFan
2018/04/24
9880
UIScrollView初始位置变化的问题
苹果爸爸iOS11废弃了UIViewController的automaticallyAdjustsScrollViewInsets属性导致 处理方案: 统一在appDelegate的didFinishLaunchingWithOptions的最开始增加: Swift: if#available(iOS 11.0, *) {UIScrollView.appearance().contentInsetAdjustmentBehavior=.never} OC: if (@availa
程序员不务正业
2018/06/14
6760
IOS5开发-UIScrollView添加单击事件的方法
UIScrollView在开发中是一个非常常用的控件,UIScrollView具有水平、垂直滚动和缩放效果。但是尽然没有响应单击事件这个事件。而这个事件在日常的交互中是非常需要的。比如当用于单击或轻触图片的某个位置时,给于一些交互性提示。 下面我将用例子说明一下如何给UIScrollView添加一个单击的响应。 代码如下: 添加一个自定义的UIScrollView,命名:UITouchScrollView UITouchScrollView.h代码如下 #import <Foundation/Foundat
阿新
2018/04/12
1.9K0
iOS 面试策略之系统框架-UIScrollView及其子类
UIScrollView 恐怕是所有 App 都绕不过去的类——尤其是它的子类 UITableView 和 UICollectionView。看看我们日常常见的 App,新闻类的今日头条,社交类的微博和微信,电商类的淘宝、腾讯,日常管理用的备忘录和图片 App 的缩放功能,都或多或少得使用了 UIScrollView 及其子类。
会写bug的程序员
2021/05/14
2.7K0
iOS 面试策略之系统框架-UIScrollView及其子类
UIScrollView进阶技巧
UIScrollView是iOS开发中经常用到的UI控件,像图片轮播之类的效果都可以用UIScrollView来实现,当然轮播什么的网上有很多教程了,我就不多说了。今天主要讲三个跟交互有关的效果(稍微有点标题党啊,其实也没有多进阶……),也不是直接用的UIScrollView,而是它的子类UITableView和UIWebView。先看一下效果图吧,都来自我自己的项目:
Sheepy
2018/09/10
9850
UIScrollView进阶技巧
xcode uiscrollview with paging and zoom
Here is a simple and sample code that demonstrate the photo slide function with zoom using uiscrollview.  image.png this is the first photo  image.png sliding image.png zooming in particular photo  1. first drag three photos to your project , size no
阿新
2018/04/12
1.1K0
xcode uiscrollview with paging and zoom
iOS10&Xcode8 推送证书问题
查看对应的App,可以看到其Push Notification是有问题需要修正的:
Cloudox
2021/11/23
5030
iOS10&Xcode8 推送证书问题
在Swift中创建可缩放的图像视图
没有什么比完美的图片更能让你的应用程序熠熠生辉,但如果你想让你的应用程序用户真正参与并与图片互动呢?也许他们想放大、平移、掌握这些图像?
玖柒的小窝
2021/11/05
5.7K0
Infinite Scrolling in UIScrollView
- (void)viewDidLoad {     [super viewDidLoad];          [theScrollView setContentSize:CGSizeMake(3 * theScrollView.bounds.size.width, theScrollView.bounds.size.height)];     [theScrollView setPagingEnabled:YES];          CGRect aFrame = theScrollView.bound
阿新
2018/04/12
5340
一个BUG的发现、定位和解决
前言 在iOS 11发布之后,出现了一系列适配相关的问题,UIScrollView在pagingEnabled=YES时滑动手势不灵敏,UITableView的滑动删除功能变动,UIImagePickerViewController的取消按钮点击区域变小等,本文介绍其中一个UIAlertView问题,分享其发现、定位和解决。 正文 1、问题产生 问题的最初,是iOS 11正式版发布后不久,测试的同学提了一个iOS 11相关的BUG,表现是:在直播间内发送聊天信息,如果被禁言,会弹出“被禁言”提示,键盘收回去
落影
2018/04/27
1.5K0
一个BUG的发现、定位和解决
点击加载更多

相似问题

iOS 8 GM中的UIScrollView问题

10

UIScrollView变焦自动

12

UIScrollView自动变焦

24

IOS8 Uiscrollview内部uiview问题

10

UIScrollView的滑动问题(iOS 8)

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文