标签: contentoffset

获取UIScrollView的当前位置

我来自Android,我在IOS中遇到了很多麻烦.我需要像电影一样制作滚动菜单.我使用下面的代码:

rol = scroll_view.contentOffset.y;
timer = [NSTimer scheduledTimerWithTimeInterval:.02 target:self selector:@selector(timer_rol) userInfo:nil repeats:YES];

-(void)timer_rol{
    [scroll_view setContentOffset:CGPointMake(0,rol) animated:YES];
rol++;
}
Run Code Online (Sandbox Code Playgroud)

此代码工作正常,但当用户交互向上或向下滚动时,视图返回到之前的位置(rol的值).问题是,如何在滚动后获得当前内容位置

我已经尝试过这些代码,但没有人工作:

CGPoint point = [scroll_view contentOffset];
rol = r.y  +1;

-(void) handleGesture:(UIGestureRecognizer *) sender{}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {}
-(void)scrollViewDidScroll:(UIScrollView *)scrollView {}
Run Code Online (Sandbox Code Playgroud)

有人可以帮帮我吗?

position objective-c uiscrollview ios contentoffset

8
推荐指数
2
解决办法
2万
查看次数

内容偏移动画已损坏

我有一个动画,当手势识别器(双击)触发时,它会被踢掉:

[UIView animateWithDuration:0.3 animations:^{
  _scrollView.contentOffset              = CGPointMake(x, y);
  _scrollViewContentView.frame           = someFrame;
  _scrollViewContentView.layer.transform = 
       CATransform3DMakeScale(1.f/_zoomScale, 1.f/_zoomScale, 1.f);            
}];
Run Code Online (Sandbox Code Playgroud)

除了一种情况之外它工作得很好:如果scrollViewWillBeginDecelerating在动画执行之前没有调用委托方法(只是拖动几乎我的scrollview).

我只是有scrollViewDidEndDragging方法叫.我可以等20秒,然后播放我的动画.它会正常播放,除了我的contentOffset.

委托方法本身什么都不做,只是添加它们才能看出问题所在.

我不知道为什么.

编辑:这是我的问题视频.第1阶段:减速滚动,第2阶段没有.看看最后的位置.阶段1是正确的但不是阶段

objective-c uiscrollview ios contentoffset animatewithduration

6
推荐指数
1
解决办法
1149
查看次数

键盘出现时,UICollectionView contentOffset会发生变化

我正在尝试PullDown To Search在我的应用中实现功能.为了实现这一点,我刚刚修改了位EGOTableViewPullRefresh ,除了一个问题之外它工作得很好.

问题

当用户打开应用程序后,将出现以下屏幕.最初UICollectionView's contentoffset应该是(0,0) 在此输入图像描述

如果用户拉低集合视图下面的屏幕应该在这一点上出现contentoffsetUICollectionView(0,-60) 在此输入图像描述

用户可以通过在上面的屏幕中输入文本进行搜索.如用户点击我的问题是在这个屏幕一旦出现UITextField输入文字contentoffsetUICollectionView变化(0,-60),以(0,-110)和UI loosks像波纹管屏.我不确定为什么会发生这种变化你能指导我解决这个问题吗?

在此输入图像描述

objective-c uiscrollview ios contentoffset uicollectionview

6
推荐指数
1
解决办法
3863
查看次数

UIScrollview动画取决于内容偏移量

我正在使用水平UIScrollView,我想要一个背景颜色转换,具体取决于内容偏移的x值.

示例: UIScrollView的宽度为640px.当内容偏移量等于0px时,背景颜色必须为红色.当内容偏移量为320像素时,背景必须为黄色.但最重要的部分是,当UIScrollview介于0px和320px之间时,背景颜色必须介于红色和黄色之间.

提示:当您从搜索向左滑动时,iOS的Twitter应用程序具有相同的动画.导航上的标签略有消失.

xcode animation uiscrollview ios contentoffset

6
推荐指数
1
解决办法
7023
查看次数

UITextView setText不应该在ios8中跳转到顶部

以下iOS 8代码每秒调用一次:

- (void)appendString(NSString *)newString toTextView:(UITextView *)textView {
    textView.scrollEnabled = NO;
    textView.text = [NSString stringWithFormat:@"%@%@%@", textView.text, newString, @"\n"];
    textView.scrollEnabled = YES;
    [textView scrollRangeToVisible:NSMakeRange(textView.text.length, 0)];
}
Run Code Online (Sandbox Code Playgroud)

目标是当文本从底部开始运行时,具有与XCode控制台相同的向下滚动行为.不幸的是,setText导致视图重置为顶部,然后我再次使用scrollRangeToVisible向下滚动.

这在iOS7中通过上面的代码得到了解决,但是在上周升级到iOS8后,该解决方案似乎不再适用了.

如果没有跳跃行为,我无法弄清楚如何能够流畅地使用它?

scroll uitextview settext contentoffset ios8

5
推荐指数
2
解决办法
3794
查看次数

iOS 8.4:滚动视图会在视图出现后不久重置 contentOffset 并启用 Voice Over

启用 Voice Over 后,滚动视图会在视图出现后一秒重置它们的预设 contentOffset。它发生在 iOS 8.4 设备上,9.0 无法重现。看起来一些内部UIScrollViewAccessibility代码setContent:在聚焦时强制滚动视图为零。没有找到任何方法来逃避这一点。

有什么想法吗?

相关代码示例说明了该错误。只需创建一个带有集合视图的视图,创建一个重用 id 为“Cell”的单元格并在其上放置一个标签。

@interface ViewController () <UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout>
@property (nonatomic, weak) IBOutlet UICollectionView *collectionView;
@end
@implementation ViewController
- (void)viewDidLoad {
    [super viewDidLoad];
    self.collectionView.backgroundColor = [UIColor clearColor];
}
- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [self.collectionView reloadData];
    //set there 4 seconds and bug will disappear
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        [self.collectionView scrollToItemAtIndexPath:[NSIndexPath indexPathForItem:5 inSection:0] atScrollPosition:UICollectionViewScrollPositionCenteredHorizontally animated:NO];
    });
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    NSLog(@"Why you scroll second time?"); …
Run Code Online (Sandbox Code Playgroud)

accessibility scrollview ios voiceover contentoffset

5
推荐指数
1
解决办法
1127
查看次数

如何在React Native中设置FlatList的内容偏移量?

我知道我们可以用

render() {
   return <FlatList
            onScroll={this.handleScroll}
          />
}

handleScroll = (event) => {
//get offset by using   
//event.nativeEvent.contentOffset 
}
Run Code Online (Sandbox Code Playgroud)

但我不确定如何设置

contentoffset reactjs react-native react-native-flatlist

5
推荐指数
2
解决办法
4330
查看次数

动画中的contentOffset在deleteItemsAtIndexPaths上的UICollectionView中发生更改

我有一个UICollectionView可以添加和删除的单元格.我正在使用这些更改performBatchUpdates,并且布局按预期动画.

当我滚动到内容的末尾并删除一个项目以使contentSize减少时出现问题:这会导致contentOffset更改,但更改不是动画.相反,contentOffset删除动画完成后立即跳转.我已经尝试手动更新contentOffset删除旁边,但这对我也不起作用.

我正在使用自定义布局,但我使用以下代码看到标准流布局的相同行为:

- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
{
    return 1;
}

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
    return self.items.count;
}

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
    UICollectionViewCell *cell = [self.collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];
    UILabel *label = (UILabel *)[cell viewWithTag:1];
    label.text = [self.items objectAtIndex:indexPath.item];
    return cell;
}

- (IBAction)addItem:(UIBarButtonItem *)sender
{
    self.runningCount++;
    [self.items addObject:[NSString stringWithFormat:@"Item %u",self.runningCount]];
    [self.collectionView performBatchUpdates:^{
        [self.collectionView insertItemsAtIndexPaths:@[[NSIndexPath indexPathForItem:self.items.count-1 inSection:0]]];
    } completion:nil];
}

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{ …
Run Code Online (Sandbox Code Playgroud)

objective-c ios contentsize contentoffset uicollectionview

4
推荐指数
1
解决办法
4554
查看次数

根据UIScrollView的contentOffset在颜色之间切换

我的水平UIScrollView宽度960足以容纳3个UIViewController视图.

每个视图都有一个背景颜色.第一个是粉红色,第二个是蓝色,第三个是绿色.

我希望在用户滚动时将可见颜色混合/混合/淡化.

因此,如果您从第1页(粉红色)滚动到第2页(蓝色),当用户完全刷到第2页时,最终会落在最终的蓝色上之前会有某种类型的粉色和蓝色混合/混合/淡入淡出.

我发现了一个关于我正在尝试做什么的问题,我已经实现了答案,可以在这里找到:https://stackoverflow.com/a/26159561/3344977

这个答案确实有效,我唯一的问题是这个答案只是为了使用2个屏幕/颜色,我有3个屏幕/颜色.

我理解这个答案的基础知识,它取决于UIScrollView contentOffset.x来计算当前的颜色,但除此之外,我在数学方面很糟糕,这让我不知道如何修改它以使用第三种颜色.

uiscrollview ios contentoffset

4
推荐指数
2
解决办法
1889
查看次数

使用自动布局扩展单元格时,UITableView会跳转。

我一直在搜索,找不到针对此问题的解决方案。我当前的代码基于Reload节,而没有重新装入节头

当用户按下单元格时,我正在尝试增加一个uitableview单元格。我有一个带有UILabel的UITableViewCell子类,该子类最初限于两行文本。当用户按下UILabel时,我将UILabel中的numberOfLines属性设置为0,因此它可以根据需要扩展到任意多的行。

这是我来自tableView:didSelectRowAtIndexPath的代码:

if (((NSNumber *)expandedCells[indexPath.section]).boolValue)
{
     labelExpandingCell.cellLabel.numberOfLines = 10;
} else
{
     labelExpandingCell.cellLabel.numberOfLines = 3;
}
[UIView setAnimationsEnabled:NO];
[self.tableView beginUpdates];
[self.tableView setNeedsDisplay];
[self.tableView endUpdates];
[UIView setAnimationsEnabled:YES];
Run Code Online (Sandbox Code Playgroud)

有时,这种方法可以正常工作,通常是在UITableView的contentOffset.y == 0时。通常,当我执行此代码时,tableview会向后跳转100个像素左右。这是运行此代码之前和之后的示例日志。

2016-03-25 14:57:08.549 TableViewTest [485:129926]更新前的内容偏移量:153.500000 2016-03-25 14:57:08.568 TableViewTest [485:129926]更新后的内容偏移量:136.500000

当展开当前可见的单元格时,为什么自动布局会导致表格视图向后跳转?

objective-c uitableview uiscrollview ios contentoffset

4
推荐指数
1
解决办法
1323
查看次数