uiscrollview - UIScrollView分页时更新标签 iOS

标签 uiscrollview uiscrollviewdelegate

我有一个 View Controller ,在屏幕的上半部分包含一个 UIScrollView 。在下半部分我有一个标签。这是表的详细信息 View ,因此一旦您从表中选择一个项目,它就会加载此详细信息 View 。您选择的某些项目有不同的变体,因此这就是 ScrollView 的用武之地。您可以左右滚动以查看变体。

我试图让 ScrollView 下方的标签在 ScrollView 滚动时更改其文本。这是我用来检测我所在页面的方法:

CGFloat pageWidth = scrollView.frame.size.width; 
int page = floor((scrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;

这将返回 ScrollView 的“页码”。当用户滚动到不同页面时,如何告诉标签更改其文本?我看过很多例子,包括自定义委托(delegate),但我似乎找不到一个好的解决方案。

作为旁注,要显示的标题位于数组中,因此一旦我能找到一种方法来告诉标签(以及任何其他可能的标签),objectAtIndex:page - 1 将是完美的将来显示)进行更新。

最佳答案

为什么不尝试一下:

#define ScrollObjWidth 320.0f // Note: Use what size you need!

- (void)scrollViewDidScroll:(UIScrollView *)scrollView; {
  float roundedValue = round(scrollView.contentOffset.x / ScrollObjWidth);
  _label.text = [NSString stringWithFormat:@"%d", ((int)roundedValue - 1)];
}

确保您的 UIViewControllerUIScrollViewDelegate,并且 UIScrollViewdelegate 属性设置为UIViewController

希望有帮助!

关于uiscrollview - UIScrollView分页时更新标签 iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13206329/

相关文章:

iphone - 在 Storyboard iphone 中 ScrollView

iphone - 保持 UIScrollView 的 subview 不调整大小?

ios - -(无效)scrollViewDidScroll :(UIScrollView *)scrollView too slow in iOS 8

swift - 为什么我的 TableView scrollToRow 只能部分滚动?

ios - UIScrollViewDelegate scrollViewDidScroll 方法跟不上高速滚动(轻弹)?

iphone - 无法触摸 UIScrollView 上的 UITextField

ios - 无法在 ScrollView 中缩放 UIImage

ios5 - 重写scrollViewDidScroll时出现问题,但不是UIScrollViewDelegate的所有其他方法

iphone - 手动滚动显示相同内容的两个 UICollectionView

ios - 访问 ScrollView 委托(delegate)的父组件