我有一个UIScrollView(不是表视图,只是一个自定义的东西),当用户采取某些动作时,我想杀死视图内的任何滚动(拖动或减速).我试过这样做:
[scrollView scrollRectToVisible:CGRectInset([scrollView bounds], 10, 10) animated:NO];
Run Code Online (Sandbox Code Playgroud)
根据这个理论,给定一个已经知道可见的矩形,滚动就会停在它的位置,但事实证明这没有任何效果 - 显然滚动视图看到给定的矩形在边界和需要没有动作.我可以让滚动停止,如果我给出一个肯定在当前可见边界之外的矩形,但是在视图的contentSize内.这似乎停止了预期的视图......但也导致它跳转到其他位置.我可能会在边缘做一些游戏以使其合理地工作,但有没有人知道一种干净的方法来停止滚动视图正在做它的事情?
谢谢.
UIScrollView我的应用程序中已有大约5个已加载多个.xib文件.我们现在想用一个UIRefreshControl.它们构建为与UITableViewControllers一起使用(根据UIRefreshControl类引用).我不想重新做所有5个UIScrollView工作.我已经尝试过使用UIRefreshControl我UIScrollView的,除了一些东西之外,它按预期工作.
在刷新图像变成加载器之后,UIScrollView跳跃大约10个像素,这只有在我非常小心地UIScrollview向下拖动时才会发生.
当我向下滚动并启动重装,然后让围棋UIScrollView,在UIScrollView那里我让它去住宿.重新加载完成后,UIScrollView跳转到顶部没有动画.
这是我的代码:
-(void)viewDidLoad
{
UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
[refreshControl addTarget:self action:@selector(handleRefresh:) forControlEvents:UIControlEventValueChanged];
[myScrollView addSubview:refreshControl];
}
-(void)handleRefresh:(UIRefreshControl *)refresh {
// Reload my data
[refresh endRefreshing];
}
Run Code Online (Sandbox Code Playgroud)
有什么方法可以节省一大堆时间并使用UIRefreshControla UIScrollView?
谢谢!!!
有没有办法找出哪个UITableViewCell位于滚动窗口的顶部?
我想获取当前滚动位置,以便我可以在应用程序退出时保存它.当应用程序启动时,我想滚动到它上次退出时的位置.
如何检测我的触摸点UIScrollView?触摸委托方法不起作用.
我正在尝试在UICollectionViewController中处理接口方向更改.我想要实现的是,我想在接口旋转后拥有相同的 contentOffset.意思是,它应该根据边界变化的比例进行更改.
从肖像开始,内容偏移量为{ bounds.size.width*2,0} ...

...应该导致景观中的内容偏移{ bounds.size.width*2,0}(反之亦然).

计算新的偏移量不是问题,但不知道,在何处(或何时)设置它以获得平滑的动画.我正在做的事情是使布局无效willRotateToInterfaceOrientation:duration:并重置内容偏移didRotateFromInterfaceOrientation::
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
duration:(NSTimeInterval)duration;
{
self.scrollPositionBeforeRotation = CGPointMake(self.collectionView.contentOffset.x / self.collectionView.contentSize.width,
self.collectionView.contentOffset.y / self.collectionView.contentSize.height);
[self.collectionView.collectionViewLayout invalidateLayout];
}
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation;
{
CGPoint newContentOffset = CGPointMake(self.scrollPositionBeforeRotation.x * self.collectionView.contentSize.width,
self.scrollPositionBeforeRotation.y * self.collectionView.contentSize.height);
[self.collectionView newContentOffset animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
这会在旋转后更改内容偏移.
如何在旋转期间设置它?我试图设置新的内容偏移量,willAnimateRotationToInterfaceOrientation:duration:但这会导致一种非常奇怪的行为.
我怎样才能找到屏幕上实际可见的显示视图内容的rect(CGRect).
myScrollView.bounds
Run Code Online (Sandbox Code Playgroud)
上面的代码在没有缩放时有效,但只要你允许缩放,它就会以1以外的缩放比例中断.
为了澄清,我想要一个CGRect,它包含相对于内容的滚动视图内容的可见区域.(即如果它是缩放比例2,则矩形的大小将是滚动视图大小的一半,如果它是缩放比例0.5,它将是双倍.)
我有一个UIScrollView(实际上是一个UICollectionView,但这可能没关系).当它出现在IOS 7中时,导航控制器将其contentInset和contentOffset设置为我不想要的值.它似乎正在尝试调整状态栏和导航栏.我非常喜欢让他们独自一人.我已经通过覆盖contentInset和contentOffset的getter和setter方法来解决这个问题,并使用一个标志来告诉对象它是否应该接受一个集合.但有更好的方法吗?


我已经关闭了Autolayout,并且viewcontroller嵌入在导航控制器中.我正在使用Xcode 5,Storyboard.
我不明白为什么它会从顶部留下空间.实际上在故事板中我把我的标签正好放在导航栏下方.但是当我在模拟器上运行它然后它从顶部离开空间.
解决这个问题的一种黑客方法
-(void)viewWillLayoutSubviews
{
self.scrollViewMain.frame = CGRectMake(0, -70, 320, 800);
self.scrollViewMain.contentSize = CGSizeMake(320, 800);
}
Run Code Online (Sandbox Code Playgroud)
但我错过了一些非常简单的方法.
我需要做这个有奇怪配置的应用程序.
如下图所示,主视图是UIScrollView.然后里面应该有一个UIPageView,而PageView的每个页面都应该有一个UITableView.
到目前为止我已经完成了这一切.但我的问题是我希望滚动行为 自然.
接下来是我的意思自然.目前,当我滚动其中一个UITableViews时,它会滚动tableview(而不是scrollview).但我希望它滚动ScrollView,除非scrollview无法滚动导致它到达顶部或底部(在这种情况下,我希望它滚动tableview).
例如,假设我的滚动视图当前滚动到顶部.然后我把手指放在桌面视图(显示的当前页面)上并开始向下滚动.在这种情况下,我希望滚动视图滚动(没有tableview).如果我继续向下滚动我的滚动视图并且它到达底部,如果我从显示器上移开手指并将其放回tebleview并再次向下滚动,我希望我的tableview现在向下滚动,因为滚动视图到达底部并且它不是能够继续滚动.
你们对如何实现这种滚动有任何想法吗?
我真的迷失了.任何帮助将非常感激它:(
谢谢!
我正在尝试使用UIScrollView内部具有动态高度的控制器创建容器视图,并使用自动布局自动调整大小.

视图控制器A是滚动视图,其中包含容器视图,以及下面的更多内容.
View Controller B是视图控制器,我希望它具有动态大小,并且所有内容都在View Controller A的Scroll View中以全高显示.
我有一些问题,让B的动态大小自动设置A中容器视图的大小.但是,如果我在A中的容器视图上设置高度约束
,
如果View Controller B也有250个高度,那么它将是预期的输出.它也适用于高度1000,所以据我所知,所有自动布局约束都正确设置.不幸的是,由于高度实际上应该是动态的,我想避免设置高度约束.
我不确定是否有任何设置视图控制器BI可以设置它根据其内容自动更新其大小,或者是否有任何其他技巧我错过了.任何帮助将非常感激!
根据视图控制器B的大小没有设置高度约束,有没有办法在A中调整容器视图的大小?
uiscrollview ×10
ios ×5
iphone ×5
objective-c ×5
cocoa-touch ×2
ios7 ×2
uitableview ×2
autolayout ×1
ios6 ×1
swift ×1
uikit ×1
uitouch ×1
xamarin.ios ×1