我来自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)
有人可以帮帮我吗?
我有一个动画,当手势识别器(双击)触发时,它会被踢掉:
[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
我正在尝试PullDown To Search在我的应用中实现功能.为了实现这一点,我刚刚修改了位EGOTableViewPullRefresh
,除了一个问题之外它工作得很好.
问题
当用户打开应用程序后,将出现以下屏幕.最初UICollectionView's contentoffset应该是(0,0)

如果用户拉低集合视图下面的屏幕应该在这一点上出现contentoffset的UICollectionView应(0,-60)

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

我正在使用水平UIScrollView,我想要一个背景颜色转换,具体取决于内容偏移的x值.
示例: UIScrollView的宽度为640px.当内容偏移量等于0px时,背景颜色必须为红色.当内容偏移量为320像素时,背景必须为黄色.但最重要的部分是,当UIScrollview介于0px和320px之间时,背景颜色必须介于红色和黄色之间.
提示:当您从搜索向左滑动时,iOS的Twitter应用程序具有相同的动画.导航上的标签略有消失.
以下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后,该解决方案似乎不再适用了.
如果没有跳跃行为,我无法弄清楚如何能够流畅地使用它?
启用 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) 我知道我们可以用
render() {
return <FlatList
onScroll={this.handleScroll}
/>
}
handleScroll = (event) => {
//get offset by using
//event.nativeEvent.contentOffset
}
Run Code Online (Sandbox Code Playgroud)
但我不确定如何设置
我有一个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) 我的水平UIScrollView宽度960足以容纳3个UIViewController视图.
每个视图都有一个背景颜色.第一个是粉红色,第二个是蓝色,第三个是绿色.
我希望在用户滚动时将可见颜色混合/混合/淡化.
因此,如果您从第1页(粉红色)滚动到第2页(蓝色),当用户完全刷到第2页时,最终会落在最终的蓝色上之前会有某种类型的粉色和蓝色混合/混合/淡入淡出.
我发现了一个关于我正在尝试做什么的问题,我已经实现了答案,可以在这里找到:https://stackoverflow.com/a/26159561/3344977
这个答案确实有效,我唯一的问题是这个答案只是为了使用2个屏幕/颜色,我有3个屏幕/颜色.
我理解这个答案的基础知识,它取决于UIScrollView contentOffset.x来计算当前的颜色,但除此之外,我在数学方面很糟糕,这让我不知道如何修改它以使用第三种颜色.
我一直在搜索,找不到针对此问题的解决方案。我当前的代码基于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
当展开当前可见的单元格时,为什么自动布局会导致表格视图向后跳转?
contentoffset ×10
ios ×8
uiscrollview ×6
objective-c ×5
animation ×1
contentsize ×1
ios8 ×1
position ×1
react-native ×1
reactjs ×1
scroll ×1
scrollview ×1
settext ×1
uitableview ×1
uitextview ×1
voiceover ×1
xcode ×1