Tag: uiscrollview

如何在Swift中获得UIScrollView的垂直方向?

如何在VC中上下滚动/滑动方向? 我想在我的VC中添加一个UIScrollView或其他东西,可以看到用户滑动/向上或向下滑动,然后隐藏/显示一个UIView这取决于它是一个向上/向下的手势。

ScrollView手势识别器吃所有的触摸事件

我有一个UIScrollView ,我添加了一个轻击手势识别器来显示/隐藏一些UI覆盖使用: UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)]; [scrollView addGestureRecognizer:singleTap]; 和: – (void)handleTap:(UITapGestureRecognizer *)sender { // report click to UI changer } 我在UIScrollView的底部添加了一个简单的表格视图 。 一切工作正常(水平和垂直滚动),但问题是,只有手势识别器(上面),而不是简单的表视图识别轻敲。 如果我删除注册手势监听器的行,一切工作正常,表视图通知自己点击。 这就好像手势识别器function在桌面视图上“吃”了轻敲事件,并且不会向下传播它们。 任何帮助表示赞赏

滚动到iOS 7中不稳定的UITextView底部

下面的代码将在iOS 7.0中正常工作。 在iOS 7中,UITextView正在更新时,滚动会变得不稳定和不稳定。 我不确定这是否是iOS 7中的错误,或者我做错了什么。 TestController.h //TODO: Add UITextView in storyboard and tie to textView outlet #define MAX_TEXT_VIEW_CHARACTERS 1000 @interface TestController : UIViewController { NSMutableString *_outputText; NSTimer *_outputTimer; } @property (strong, nonatomic) IBOutlet UITextView *textView; @end TestController.m @implementation TestController @synthesize textView; – (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; _outputText = [NSMutableString stringWithCapacity:MAX_TEXT_VIEW_CHARACTERS]; _outputTimer = [NSTimer scheduledTimerWithTimeInterval:0.01 […]

以编程方式设置约束

我正在试验如何使用UIScrollView。 经过很多麻烦,我终于得到了它的挂钩。 但现在我似乎又遇到了另一个障碍。 在这个简单的应用程序,我有一个滚动视图,为了它的工作,我必须设置视图的底部空间滚动视图约束为0,如这里所述,它工作正常。 我正在通过IB来完成。 现在我遇到了一个场景,我必须通过编程来完成这个部分。 我在viewDidLoad方法中添加了下面的代码。 NSLayoutConstraint *bottomSpaceConstraint = [NSLayoutConstraint constraintWithItem:self.view attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.scrollView attribute:NSLayoutAttributeBottom multiplier:1.0 constant:0.0]; [self.view addConstraint:bottomSpaceConstraint]; 但似乎没有工作。 它在控制台窗口中输出以下消息,我不知道该怎么做。 无法同时满足约束。 下面列表中的至less一个约束可能是你不想要的。 试试这个:(1)看看每一个约束,试图找出你不期望的; (2)find添加不需要的约束或约束的代码并修复它。 (注意:如果你看到你不明白的NSAutoresizingMaskLayoutConstraints,请参阅UIView属性的文档translatesAutoresizingMaskIntoConstraints)(“”,“”) 有人可以告诉我如何做到这一点? 我还附加了一个演示项目,以便您可以更好地了解这个问题。 更新: 首先谢谢你的回应。 使用答案中提到的方式,我能够得到它的工作。 然而,略有不同的情况下,它不是。 现在我试图以编程方式将视图加载到viewcontroller。 如果我可以进一步解释。 有2个视图控制器。 第一个是UITableViewController ,第二个是UIViewController 。 里面有一个UIScrollView 。 另外还有多个UIView ,其中一些视图的高度超出了屏幕的正常高度。 UITableViewController显示一个选项列表。 根据用户的select,一个特定的UIView将被加载到带有UIScrollView的UIViewController 。 在这种情况下,上述方法不起作用。 滚动没有发生。 我是否需要单独加载视图才能做一些不同的事情? 我已经在这里上传了一个演示项目,这样你就可以看到它的实际运行。 请参阅Email.xib并从表格视图列表中select电子邮件 。

什么时候UITableView的contentSize被设置?

我在UIScrollView有一个不滚动的UITableView 。 我将UITableView的框架大小设置为其内容大小。 当我向UITableView添加一行时,我在UITableView调用了insertRowsAtIndexPaths:withRowAnimation 然后我调用一个方法来调整UITableView的框架: – (void)resizeTableViewFrameHeight { // Table view does not scroll, so its frame height should be equal to its contentSize height CGRect frame = self.tableView.frame; frame.size = self.tableView.contentSize; self.tableView.frame = frame; } 这似乎虽然contentSize尚未更新在这一点上。 如果我手动计算框架在上面的方法基于行数和部分的数量,然后该方法正常工作。 我的问题是,我怎样才能让UITableView更新其contentSize ? 我想我可以调用reloadData ,这可能会做到这一点,但是当我插入一个单元格时,重新加载整个表格似乎效率低下。

将UISearchBarlocking到像Game Center那样的UITableView的顶部

在Game Center中的UITableViews中有这个很酷的function,他们在顶部有search栏。 与search栏放置在表头视图中的应用程序不同(它被视为标准表格单元格),而不是像上面的父导航栏那样。 所以当滚动表格时,search栏确实会移动,但是如果您在表格的边界之上滚动,search栏永远不会停止触摸导航栏。 有谁知道这可能是怎么完成的? 我想知道,如果苹果可能在父滚动视图中同时放置search栏和表,但我想知道是否可能比这更简单。

为什么UIScrollView将空间放在顶部而不会滚动到底部

我是新的Objective-C编程。 我正在使用UIScrollView上的一些标签,图像和文本视图。 我已经closures了Autolayout,并已经尝试了“调整滚动查看插图”(标题中描述的情况)和closures(不滚动)。 这是我插入viewDidLoad: [scroller setScrollEnabled:YES]; [scroller setContentSize:CGSizeMake(320, 687)]; 但我必须错过一些非常简单的事情。

内存泄漏每次UIScrollView被释放

在我的应用程序中,我有一个滚动视图和四个表视图。 每次拖动,然后释放,我得到一个48字节的泄漏。 这真的加起来。 正如你所看到的,两组泄漏都有相同的来源。 有没有人看到过这样的泄漏? 编辑1: 当我点击漏洞旁边的箭头时,我得到这个泄漏信息:

自定义UITableViewCell中的水平UIScrollView – 使用IB Storyboard – 不滚动

主要目标是能够水平滚动每一行的内容。 我试图用X Code 5和使用StoryBoard来做到这一点。 这个问题似乎很简单,但经过几个小时的search,我除了一个有点类似的问题,没有得到任何东西,只是使用了编程方法。 在IB中,我的结构如下图所示。 设置为{5000,500}的滚动视图的内容大小均在IB和代码中设置 滚动视图框架是{0,0} {320,44} 标签框架设置为{20,0} {500,44} 我还提供了一个在github仓库中的示例项目 。 这个例子还包括在一个可用的viewcell之外工作的“普通”滚动视图。 请说我忽略了一些非常基本的东西。

当uiscrollview事件发生时,NSTimer不会被触发

我有一个UIImageView放置在UIScrollView,基本上这个UIImageView拥有非常大的地图,并创build了一个预定义的path与“箭头”指向导航方向的animation。 但是,每当uiscrollevents发生,我认为MainLoop冻结和NSTimer不被解雇,animation停止。 在UIScrollView,CAKeyFrameAnimation或NSTimer中是否有解决这个问题的现有属性? //viewDidLoad self.myTimer = [NSTimer scheduledTimerWithTimeInterval:0.05 target:self selector:@selector(drawLines:) userInfo:nil repeats:YES]; – (void)drawLines:(NSTimer *)timer { CALayer *arrow = [CALayer layer]; arrow.bounds = CGRectMake(0, 0, 5, 5); arrow.position = CGPointMake(line.x1, line.y1); arrow.contents = (id)([UIImage imageNamed:@"arrow.png"].CGImage); [self.contentView.layer addSublayer:arrow]; CAKeyframeAnimation* animation = [CAKeyframeAnimation animation]; animation.path = path; animation.duration = 1.0; animation.rotationMode = kCAAnimationRotateAuto; // object auto rotates […]