Tag: uiscrollview

在顶部插入行时保持uitableview静态

我有一个tableView,我插入行顶部。 虽然我这样做,我希望当前视图保持完全静止,所以行只出现,如果你回滚了。 我已经尝试了保存底层UIScrollview的当前位置,并在插入行之后重置位置,但是这导致了上下抖动,尽pipe它最终返回了同一个位置。 有没有一个很好的方法来实现这一目标? 更新:我正在使用beginUpdate,然后insertRowsAtIndexPath,endUpdates。 没有reloadData调用。 scrollToRowAtIndexPath跳转到当前单元格的顶部(在添加行之前保存)。 我尝试的另一种方法,其结果是完全正确的步伐,但与颤抖是。 save tableView currentOffset. (Underlying scrollView method) Add rows (beginUpdates,insert…,endUpdates) reloadData ( to force a recalulation of the scrollview size ) Recalculate the correct new offset from the bottom of the scrollview setContentOffset (Underlying scrollview method) 问题是reloadData导致scrollview / tableview开始滚动,然后setContentOffset将它返回到正确的位置。 有没有办法得到一个tableView来解决它的新的大小而不开始显示? 在开始animation提交animation中包装整个事情也无济于事。 更新2:这可以清楚地做到 – 当你拉下更新时,看到一个官方的twitter应用程序。

获取UIScrollView内容的可见性

我怎样才能find真正在屏幕上显示的显示视图内容的矩形(CGRect)。 myScrollView.bounds 上面的代码在没有缩放的情况下工作,但是只要允许缩放,它就会以1以外的缩放比例进行分解。 为了澄清,我想要一个CGRect,其中包含相对于内容的滚动视图内容的可见区域。 (即,如果是缩放比例2,那么矩形的大小将是滚动视图大小的一半,如果是缩放比例0.5,则会增加一倍)。

我怎样才能获得UITableView的滚动位置,所以我可以保存它?

有什么办法找出哪个UITableViewCell是在滚动窗口的顶部? 我想获取当前的滚动位置,以便在应用程序退出时保存它。 当应用程序开始时,我想滚动到上次退出时的位置。

查看viewWillAppear:和viewDidAppear之间的框架变化:

我在我的应用程序中发现了一个奇怪的行为,其中一个连接的IBOutlet在我的视图控制器中对viewWillAppear:和viewDidAppear:之间的连接视图的框架。 这里是我的UIViewController子类中的相关代码: -(void)viewWillAppear:(BOOL)animated { NSLog(@"%@", self.scrollView); } -(void)viewDidAppear:(BOOL)animated { NSLog(@"%@", self.scrollView); } 并生成日志输出: MyApp[61880:c07] <UIScrollView: 0x1057eff0; frame = (0 0; 0 0); clipsToBounds = YES; autoresize = TM+BM; gestureRecognizers = <NSArray: 0x10580100>; layer = <CALayer: 0x1057f210>; contentOffset: {0, 0}> MyApp[61880:c07] <UIScrollView: 0x1057eff0; frame = (0 44; 320 416); clipsToBounds = YES; autoresize = TM+BM; gestureRecognizers […]

我可以在UIScrollView中使用UIRefreshControl吗?

我有约5个UIScrollView已经在我的应用程序,所有加载多个.xib文件。 我们现在想要使用UIRefreshControl 。 它们被构build为与UITableViewControllers一起使用(每个UIRefreshControl类的引用)。 我不想重新做5个UIScrollView工作。 我已经尝试在我的UIScrollView使用UIRefreshControl ,除了一些事情之外,它的工作方式和预期一样。 在刷新图像变成加载程序之后, UIScrollView向下跳跃约10个像素,这在我非常小心地非常缓慢地拖动UIScrollview时候才会发生。 当我向下滚动并启动重新加载,然后放开UIScrollView , UIScrollView停留在我放开的位置。 完成重新加载后, UIScrollView跳转到顶部,没有animation。 这是我的代码: -(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]; } 有什么办法可以节省一大堆时间,并在UIScrollView使用UIRefreshControl ? 谢谢!!!

检测UIScrollView页面更改

有没有办法检测或获取通知时,用户更改页面启用分页启用UIScrollView?

iOS 7 – navigationController设置我的UIScrollView的contentInset和ContentOffset

我有一个UIScrollView(实际上是一个UICollectionView,但可能无所谓)。 当它出现在IOS 7中时,导航控制器将其contentInset和contentOffset设置为我不想要的值。 它似乎在尝试调整状态栏和导航栏。 我非常喜欢这让他们孤单。 我已经通过覆盖contentInset和contentOffset的getter和setter方法解决了这个问题,用一个标志来告诉对象是否应该接受一个set。 但有没有更好的办法?

在UIScrollView中禁用垂直滚动

在IB有一个选项来取消滚动视图上的垂直滚动,但它似乎没有工作。 如何将scrollview设置为仅水平滚动,而不是垂直于代码而不是IB?

UIScrollview获取触摸事件

我如何检测我的UIScrollView触摸点? 触摸委托方法不起作用。

如何禁用UIScrollView的水平滚动?

我有一个像iPhone的跳板UIView 。 我用UIScrollView和UIButtons创build了它。 我想禁用所述滚动视图上的水平滚动。 我只想要垂直滚动。 我如何做到这一点?