Tag: uiscrollview

如何在Storyboard中的任何ViewController之外devise单独的UIView?

我想devise一个UIView,它比Storyboard(iOS 5)中的ViewController更大。 UIView应该作为一个UIScrollView的子视图,因此比任何我现有的ViewController都要大。 如何在Storyboard中创build这样的UIView并将其与我的UIScrollView相关联? 我想这样做,如果可能的话没有xib文件。 谢谢!

scrollViewWillEndDragging:withVelocity:targetContentOffset:不工作在UISCrollView的边缘

我试图实现一个可滚动的自定义标签栏,并在每个标签栏项目分页。 为此,我使用委托scrollViewWillEndDragging:withVelocity:targetContentOffset:它完美的一个问题。 我的分页工作的方式是,如果contentOffset靠近正确的项目,它targetContentOffset更改为该项目的偏移量。 左边是同样的东西。 问题是,每当我在第一个项目的左半部分和最后一个(滚动视图水平工作)的权利,它应该去的ContentOffset 0和最右边的项目的内容偏移量(减屏幕),但它不。 我使用debugging器进行了检查,并且targetContentOffset-> x确实为0(在第一种情况下 – 最左边的项左侧)。 所以问题是UIScrollView不滚动那里。 我迷路了。 这是我实施的代表: – (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset{ NSInteger index = lrintf(targetContentOffset->x/self.tabWidth); targetContentOffset->x = index * self.tabWidth; } 这是解释我想要做什么的图表。 |——-|——-|——-|——-|——-|——-|——-| | | | | | | | | | | | | | | | | |_______|_______|_______|_______|_______|_______|_______| |_______________________________________| where it is and i […]

为什么添加对象后UIScrollView不能完全滚动? 使用故事板,ARC和Xcode 4.5.2

所以,我知道也有类似的问题,但也许不准确(所以请不要标记我 – 只是警告我什么的)。 我已经search了解决这个简单问题的日子。 使用故事板,ARC和Xcode 4.5.2,我只需要在UIScrollView中放置一堆标签并垂直滚动。 我已经在viewDidLoad,viewDidAppear和viewWillAppear中尝试了很多设置框架大小和内容大小的组合,但无济于事。 滚动视图在内部没有任何内容的情况下完全滚动,但是当我为其添加标签时,滚动仅滚动很短的部分。 注意:我需要使用自动布局,否则我的整个项目会搞砸。 这是我现在的代码 .h文件: #import <UIKit/UIKit.h> @interface MortgageRatesViewController : UIViewController <UIScrollViewDelegate, UIScrollViewAccessibilityDelegate> – (IBAction)backButton:(id)sender; @property (strong, nonatomic) IBOutlet UIView *mortgageView; @property (weak, nonatomic) IBOutlet UIScrollView *scrollView; @end .m文件: #import "MortgageRatesViewController.h" @interface MortgageRatesViewController () @end @implementation MortgageRatesViewController – (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if […]

如何启用缩放UICollectionView

我很困惑。 我有一个UICollectionView 。 我有我自己的UICollectionViewLayout子类(喵,我没有使用Flow的东西)。 UICollectionView实例是UIScrollView的子类。 它增加了多个子视图。 但像正确缩放包含许多子视图的UIScrollView的问题似乎表明,可滚动视图应该只有一个子视图“滚动整个视图”。 对我来说似乎是一种不一致的婚姻。 我的意思是为什么苹果给我一个多重子视图的框架,然后把它们全部放在滚动视图中,这不应该工作正常? 所以我很好奇我应该如何使我的整个UICollectionView (它在UICollectionViewController子类)可缩放。 我是否需要实现各种委托方法和无效/操作布局对象,根据我在布局中保留的某些属性派生布局? 还是有其他一些机制? 另外,为什么不能只是操纵zoomScale属性,并为我自动做呢? 或者我在这里错过了一些微妙之处?

_UIQueuingScrollView引发无效的参数exception

我的包含UITableViewControllerembeddedUIPageViewController的应用程序不时引发这个exception: Invalid parameter not satisfying: [views count] == 3 回溯: * thread #1: tid = 0x6239fa, 0x03d1d88a libobjc.A.dylib`objc_exception_throw, queue = 'com.apple.main-thread, stop reason = breakpoint 25.3 frame #0: 0x03d1d88a libobjc.A.dylib`objc_exception_throw frame #1: 0x0404f448 CoreFoundation`+[NSException raise:format:arguments:] + 136 frame #2: 0x03428fee Foundation`-[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 116 frame #3: 0x01e7c535 UIKit`-[_UIQueuingScrollView _replaceViews:updatingContents:adjustContentInsets:animated:] + 185 frame #4: 0x01e800ca UIKit`-[_UIQueuingScrollView […]

UIScrollView幻影子视图

我正在从一个nib文件加载视图使用: NSArray *nibViews = [[NSBundle mainBundle] loadNibNamed:@"AnalysisView" owner:self options:nil]; AnalysisView *gridView = [nibViews objectAtIndex: 0]; 该笔尖包含一个名为gridScrollView的scrollview,在AnalysisView实现文件中,我有一个方法将视图作为子视图添加到scrollview中: for (NSInteger i = [results count] -1; i >= 0; i–) { Result *result = [results objectAtIndex:i]; [self loadResult: result]; } – (void) loadResult: (Result *) result { NSArray *nibViews = [[NSBundle mainBundle] loadNibNamed:@"GridView" owner:self options:nil]; GridView *gridView = […]

UIScrollView的iOS5 UITapRecognizer干扰button。 怎么修?

我有UIScrollView UIView内的一堆UIButton 。 我正在试图添加一个水龙头识别器的滚动视图。 轻拍识别器触发,但现在我的button没有任何工作。 我知道,在iOS5中, UIScrollView可以以某种方式将触摸事件传递给控制层次。 任何人都可以帮我弄清楚如何做到这一点?

检测UIScrollView上的触摸事件和UIView的组件

我有我的简单的故事板iPad项目UIViewController包含UIScrollView放置在整个表面(1024 x 768)。 我已经创build了3个XIV文件,这些文件是我的应用程序在viewDidLoad中加载的UIViews,并将它们添加到UIScrollView中。 这3个XIB文件中的每一个都只包含一个UIButton。 这是层次结构: 〜UIViewController( UIViewControllerClass是这个UIViewController的类) ~~ UIScrollView(包含3个相同的UIViews) UIView( UIViewClass是这个XIB文件的文件所有者) ~~~~ UIButton 我想我的UIViewControllerClass变得意识到两个:触摸UIScrollView组件上的任何地方,如果UIScrollView被触摸,如果UIScrollView中的UIView里面的UIButton被触摸,以确切的信息,该button被触摸。 我在UIViewClass里面创build了IBAction,以便在UIScrollView中的UIView里面使用UIButton,当我在所有元素(UIViewController,UIView和UIScrollView)上设置User Interaction Enabled = YES时,就像调用它一样。 但在这一点上,我的UIViewControllerClass不知道该触摸发生在该UIButton上的UIScrollView。 我做了这样的触摸识别器: UITapGestureRecognizer *touch = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTouch)]; touch.numberOfTouchesRequired = 1; 并将其添加到UIScrollView组件。 通过这种方式,我能够在UIViewControllerClass中检测UIScrollView组件上的触摸事件,但是在UIScrollView中的UIView中触摸UIButton的事件处理程序不会再被调用。 所以,我需要在UIViewControllerClass中有这两个信息: 触摸UIScrollView组件 触摸在UIScrollView(如果这个button被触摸)的UIView中的UIButton 我想附加触摸事件识别器到整个UIScrollView组件是不是解决scheme,因为它禁用所有我写在UIViewClass中的触摸事件处理程序。 我认为解决scheme是以某种方式触及哪些在UIView里面的组件UIScrollView应该发送到UIViewControllerClass,但我没有find一种方法来做到这一点。 如果有人能帮助我,我会非常感激。 提前致谢。 [编辑#1:郑的回答] 点按手势必须将cancelsTouchesInView选项设置为NO ! 对于我上面的情况,这条线解决了一切: touch.cancelsTouchesInView = NO; 非常感谢郑。

如何以编程方式在UIScrollView中用AutoLayout设置子视图?

我用UiScrollview和UIPagectontrol使用Autolayout Progrmatically创build应用程序 我创build了TKScroller作为UIView的子类,我初始化它使用某些模式和数组。 TKScroller.m -(void)setData{ [self layoutIfNeeded]; CGRect mainFrame=self.frame; [self layoutIfNeeded]; CGRect mainFrame=self.frame; UIView *lastview; NSMutableArray* manualConstraints = [NSMutableArray array]; for (int i=0; i<arrayData.count ; i++) { CGRect frame; frame.origin.x = scrollView.frame.size.width * i; frame.origin.y = 0; frame.size = scrollView.frame.size; UIView *subview = [UIView new]; subview.backgroundColor = [self getRandomColor]; [scrollView addSubview:subview]; if (i==0) { NSLayoutConstraint* […]

UITableView与自定义类似分页的行为

我正在尝试在UITableView中实现自定义大小页面的分页。 我想要实现的是让活动单元格的顶部与tableView的顶部alignment,同时仍然在tableView的底部显示下一个单元格的顶部(以使用户滚动并查看更多单元格) 。 我的细胞都是一样的高度。 如果我设置paging=YES这会导致略微偏移,随着我在页面上的弹跳而增加。 这是由于我的tableView比单个单元格略高,单元格高度/页面大小不alignment。 我已尝试使用分页启用不同的东西。 我试着将tableView的大小设置为单元格的高度,但是closures了剪裁和遮罩,所以用户仍然可以看到下一个单元格。 这不起作用,因为在单元格滚动到tableView的边界框之前的最后一个ms,下一个单元格仅添加到底层的scrollView。 然后我开始实现不同的scrollView委托方法来模仿分页行为 – 我似乎无法做到。 除此之外,我还尝试过这样的事情: – (void) scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset { float cellHeight = [myCell rowHeight]; int index = floorf(scrollView.contentOffset.y / cellHeight); *targetContentOffset = CGPointMake(targetContentOffset->x, targetContentOffset->y = (index * cellHeight)); } 虽然这样做是正确的,但它的行为不像启用分页的scrollView / tableView。 我在这里发现了一些人试图达到同样的东西的post,但是答案却遭受着与我自己尝试的任何事情相同的“非原生快感”。 感谢您给予的任何帮助。 iOS> = 5.0