Tag: uiscrollviewdelegate

UIScrollView,滑动,缩放

我有一个应用程序,它有一个uiscrollview,而这又有两个uiimageviews。 滚动视图可以在两个图像浏览之间滑动,通过使内容大小变宽两倍。 像这样 [self.scrollView setContentSize:CGSizeMake(self.scrollView.frame.size.width * 2, self.scrollView.frame.size.height)]; 现在,客户希望用户能够放大这两个图像中的任何图像。 他不希望放大所选图片的另一个模态视图,而是希望发生这种情况。 这是可行的吗? 还是一个好主意? 我遇到的问题是,当我实现缩放逻辑(实现委托 UIScrollViewDelegate 我设定的价值 self.scrollView.zoomScale 我最终调用这个方法 – (UIView*)viewForZoomingInScrollView:(UIScrollView *)scrollView { return [self getCurrentVisibleImage]; } 发生这种情况后,我最终得到的UIScrollview缩放到图像的正常大小后,滚动视图不会左右滑动? 任何帮助表示赞赏。

改变方向时,UIscrollview的内容不会更新

这是我的问题。 上午旋转设备时使用其框架我正在更改的滚动视图。 我有8滚动视图AsyncImageView。 AsyncImageView的图像通过调用Web服务来设置。 项目运行良好。 AsyncImageView上的图像正确加载。 但是当我旋转设备,AsyncImageViews显示没有图像 。 我尝试了一切。 没有成功。 然后我使用了一个技巧。 这是设置scrollview内容偏移1,0向任一方向旋转。 而我的项目工作正常。 所有的图像都正确显示。 它看起来我的scrollview没有刷新时,我改变了旋转,但我设置其偏移1,0; 它开始在AsyncImageView上正确显示图像 。 有没有什么我错过了关于Uiscrollview? 我用了 [self.scrollView setNeedsDisplay]; 我也应用了一些其他的东西,发现在stackoverflow和谷歌,没有任何工作在我的情况。 请帮忙。 这是代码 //Magazine Images //subview1 MAG Imaegs [[asy_Array_Mag_sub1 objectAtIndex:0] setFrame:CGRectMake(59, 120, 136, 174)]; [[asy_Array_Mag_sub1 objectAtIndex:1] setFrame:CGRectMake(296, 120, 136, 174)]; [[asy_Array_Mag_sub1 objectAtIndex:2] setFrame:CGRectMake(576, 120, 136, 174)]; [[asy_Array_Mag_sub1 objectAtIndex:3] setFrame:CGRectMake(802, 176, 136, 174)]; [[asy_Array_Mag_sub1 objectAtIndex:4] […]

滚动视图委托的冲突参数types

我有这个function: – (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale 该声明是从文档复制。 但是,我正在得到一个“定罪的参数types " warning 'CGFLoat' (aka double) vs 'float'. 将浮动更改为CGFloat不会使警告消失。 我该如何解决?

在UiTableView顶部创build一个button

我想了解Facebook Messenger如何在留在UITableView之上的屏幕的button上创build一个button,并遵循滚动? 我想实现右下方的蓝色button。 我应该怎么做到这样的事情? 任何推动正确的方向将高度赞赏。

UIScrollView委托方法调用不正确

为了上下滚动我需要调用两个方法,我已经使用了下面的方法。我使用UICollection的scrollview委托方法 ,因为它是UIScrollView的子视图。这里是我写的代码,但滚动是不容易移动,结果也不准确,有时可以有人提出。 – (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{ CGPoint mScrollPosition = [scrollView.panGestureRecognizer velocityInView:mCollectionView]; if (mScrollPosition.y > 0.0f){ NSLog(@"going down"); //Action One mYearHeaderTitle–; [self.mCollectionView reloadData]; } else if (mScrollPosition.y < 0.0f){ NSLog(@"going up"); //Action two mYearHeaderTitle++; [self.mCollectionView reloadData]; } }

UIScrollView不滚动

我有一个UIScrollView根本不滚动。 如果我启用了弹跳function,我可以向两边滚动足够多,以便看到视图外面有内容,但是当我释放时,它会直接回到原点。 我打开了分页,但是如果closures它,我会得到相同的行为。 我有自动布局closures。 在IB中,scrollView位于MainViewController中,正确连接到IBOutlet,如下所示。 @interface MainViewController () @property (strong, nonatomic) IBOutlet UIScrollView *scrollView; @end @implementation MainViewController – (void)viewDidLoad { [super viewDidLoad]; for (int i = 0; i < 3; i++) { CGRect frame; frame.origin.x = self.scrollView.frame.size.width * i; frame.origin.y = 0; frame.size = self.scrollView.frame.size; // I might be doing this wrong, but it returns […]

UIView不在UIScrollView委托中触发方法

我想知道是否有人可以请摆脱一些为什么UIScrollView委托的任何方法没有被解雇。 设置场景。 我有一个UIViewController被推入到堆栈。 在这个视图中,我有5个自定义选项卡,我已经做了。 在每个水龙头的一个水龙头,我有一个从UIViewController / xib组合的5视图(每个选项卡一个)加载function。 ExercisePhotoView *exercisePhotoView = [[ExercisePhotoView alloc] initWithNibName:@"ExercisePhotoView" bundle:nil]; exercisePhotoView.exercise = self.exercise; [self.photoView addSubview:exercisePhotoView.view]; [exercisePhotoView release]; 在这些被加载的视图之一,我有一个滚动视图与一些图像(上面的代码块是说的看法)。 self.exercise是一个NSManagedObject。 图像加载到滚动视图控制器和分页工作正常。 但是不pipe用的是ScrollView的委托方法,比如 – (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)theScrollView 我已经在头文件中包含了对委托的引用。 @interface ExercisePhotoView : UIViewController <UIScrollViewDelegate> { IBOutlet UIScrollView *scrollView; IBOutlet UIPageControl *pageControl; Exercise *exercise; NSMutableArray *exerciseImageList; } 有什么我失踪或做错了。 我无法获得任何委托方法在ExercisePhotoView类上触发。 先谢谢你。

点击“加载早期项目”button时,如何将UITableView的滚动位置设置为之前的位置

我有一个像iOS iMessage细节视图的tableView。 而且我还有一个button,在“加载早期消息”使用的tableView的顶部。 当我滚动tableView顶部,我的button出现,我点击button后,我填写早期的logging和重新加载tableView。 当logging在tableView中重新填充时,滚动位置不会更改。 顺便说一句,我试着保持滚动上一个位置值和setcontentoffset到前一个CGPoint 。 但是我意识到,当点击button时,scrollposition总是为0。 所以,我setcontentoffset后,滚动保持顶部.. 我需要将scrollview的位置重新定位到之前的区域。 —编辑— 我试图改进我的方法,“保持scrollview的以前的位置”。 我find了解决scheme,效果很好。 我会分享所有的; 将此添加到.h文件: @property (nonatomic) CGFloat scrollsPreviousLocation; 和@synthesize scrollsPreviousLocation; 到.m文件。 现在,这是诀窍:我从底部计算滚动的位置..不是从顶部。 – (void)scrollViewDidScroll:(UIScrollView *)scrollView { scrollsPreviousLocation = (self.tableView.contentSize.height – scrollView.contentOffset.y); } 在计算过程之后,现在我需要将内容偏移设置到之前的位置; [tableView reloadData]; CGPoint offset = CGPointMake(0,tableView.contentSize.height – scrollsPreviousLocation); [tableView setContentOffset:offset animated:NO];

仅当UIWebView向下滚动一下时,状态栏才会检测到点击

我有一个UIWebView作为UINavigationController的根视图。 当一个网页完成加载,我隐藏导航栏,我正在寻找一种方法来显示它。 现在,当用户点击状态栏时,我试图这样做( 这种方法在我看来比我想要的更复杂)。 为了做到这一点,首先我得到了webView的scrollView: for (id subview in mainWebView.subviews) { if ([[subview class] isSubclassOfClass: [UIScrollView class]]) { ((UIScrollView *)subview).delegate = self; } } 然后我使用委托方法: -(BOOL) scrollViewShouldScrollToTop:(UIScrollView *)scrollView { [self.navigationController setNavigationBarHidden:NO animated:YES]; return NO; } 我希望这可以工作,但是这是发生了什么事情: 页面加载和导航栏被隐藏(这很好) 我尝试点击状态栏,但没有发生(这是不好的) 我向下滚动,以便webview远离状态栏 不让webview去,我用另一个手指点击状态栏,它的工作原理! (这很奇怪 :) Soooo,有关于此的任何帮助? 为什么发生这种情况?

UIScrollViews都在同一时间滚动

我有一个屏幕有几个scrollViews。 如何做到这一点:当我点击一个和滑动,他们都开始滚动。 我当然知道UIScrollViewDelegate方法,我到目前为止想做的是结合scrollViewDidScroll -setContentOffset:animated:与scrollViewDidScroll和它的作品,但只有一种情况 – 当我开始滚动委托滚动视图。 如何dynamic更改委托? 取决于用户select哪个滚动视图?