Tag: uiscrollview

目标C:UILongPressGestureRecognizer错误

我正在尝试把我的scrollView UILongPressGestureRecognizer,但它不工作。 长时间触摸后出现错误:“线程1:程序接收信号SIGABRT” 在这里我的代码: – (void)viewDidLoad { [super viewDidLoad]; longPressToDrag = [[UILongPressGestureRecognizer alloc] initWithTarget:scrollView action:@selector(forLongPress:)]; longPressToDrag.minimumPressDuration = 3.0; [scrollView addGestureRecognizer:longPressToDrag]; [self pages]; } – (void)forLongPress:(UILongPressGestureRecognizer *)gestureRecognizer { NSLog(@"Long Touch"); } 我在这里有错误: int main(int argc, char *argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); //<— Thread 1: Program received signal "SIGABRT" } }

UIScrollView在键盘closures时停止滚动

我目前正在使用Swift 3的iPhone应用程序,但是我遇到了滚动视图的问题。 在select一个文本字段和键盘出现之前,滚动视图正常工作(即:我可以上下滚动),但是在解散键盘之后,滚动视图不允许我滚动,这是我的问题。 注意:如果我再次select一个文本字段,使键盘出现,它会正常工作,一旦它被解散了,停止工作。 我检查了scrollview的isScrollEnabled属性,它似乎被启用。 不幸的是,我仍然不太熟悉scrollview的所有细节,似乎无法弄清楚它为什么停止工作。 任何帮助或指针,我可以看看将不胜感激。 编辑:有相当多的代码,但这里是缩小部分相关的滚动视图和键盘: class ScrollViewController: UIViewController, UITextViewDelegate, UITextFieldDelegate { //Scroll view @IBOutlet weak var scrollView: UIScrollView! //UIView inside the scroll view @IBOutlet weak var contentView: UIView! //Save button on the top right corner @IBOutlet weak var saveButton: UIBarButtonItem! //Text field being editted var activeTextField:UITextField? fileprivate var contentInset:CGFloat? fileprivate var indicatorInset:CGFloat? […]

IOS Swift初学者

在屏幕上,view-scrollview-contentview,contentview中有很多文本框,所以我使用scrollview在一个屏幕上。现在的问题是我无法点击或键入文本字段,因为我知道滚动视图涵盖了contentview。 但是我想input文本框,并能够滚动屏幕。 我试图在这里看到很多答案,但无法找出正确的解决scheme。 scrollview和contentview都是启用用户交互,在滚动视图中打开/closures“延迟内容触摸”/“可取消内容触摸”,但不起作用。 感谢任何帮助。

UIScrollView中的UIView的素描

当我尝试在UIScrollView的子视图UIView上绘制草图时遇到问题。 在UIView放大或滚动之后尝试在UIView上绘制草图时,会出现问题。 看起来我的草图代码(如下所示)没有考虑UIScrollView内的UIView的缩放或缩放,因为线条模糊,并没有显示他们应该在哪里。 请让我知道是否有什么可以做我的代码或提供另一种解决scheme。 – (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { NSLog(@"Draw touchesBegan"); mouseSwipedPSVC = NO; UITouch *touch = [touches anyObject]; lastPointPSVC = [touch locationInView:sheetDrawView]; } – (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { mouseSwipedPSVC = YES; UITouch *touch = [touches anyObject]; CGPoint currentPoint = [touch locationInView:sheetDrawView]; UIGraphicsBeginImageContext(sheetDrawView.frame.size); [drawImageView.image drawInRect:CGRectMake(0, 0, sheetDrawView.frame.size.width, sheetDrawView.frame.size.height)]; CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPointPSVC.x, lastPointPSVC.y); CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), currentPoint.x, […]

ScrollView阻止NavigationViewController

我有UINavigation控制器的UIView和其他几个Imageviews和一个文本里面的文件。 在导航栏上有一个UIBarbutton项目,推动另一个ViewController。 当导航视图控制器中的文本字段被轻敲时,它会popup键盘,导致文本字段被键盘阻止。我想要启用滚动视图,只要键盘阻止文本字段。 无论何时调用键盘,都会向此方法发送通知。 – (void)displayKeyboard { scroll=[[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)]; scroll.contentSize=CGSizeMake(0, 500); scroll.userInteractionEnabled=YES; [self.view addSubview:scroll]; } 我试图以编程方式将视图添加到视图,但这会导致整个视图被阻止。我可以看到滚动但它不是什么,我不能访问该视图了。 难道我做错了什么 ? 有没有其他的方式,我可以启用滚动视图,每当键盘出现,所以我可以scoll整个屏幕?

在UIScrollView的滚动过程中启用UITableView滚动

我有一个UITableView里面的UITableView 表视图看起来像: private(set) lazy var tableView: UITableView = { let tableView = UITableView(frame: CGRect.zero, style: .plain) tableView.separatorStyle = .none tableView.showsVerticalScrollIndicator = false tableView.rowHeight = 70 tableView.backgroundColor = .blue tableView.bounces = false tableView.alwaysBounceVertical = false tableView.isScrollEnabled = false return tableView }() 正如你所看到的,我已经禁用了滚动的表格视图,因为我想让它与UIScrollView的其余视图一起滚动。 我想实现的是,当UIScrollView达到一定的偏移量时,启用tableView的滚动,因此我在scrollViewDidScroll委托方法中有: func scrollViewDidScroll(_ scrollView: UIScrollView) { if scrollView.contentOffset.y >= 160 { self.view.tableView.isScrollEnabled = true […]

iOS:如何在UIScrollView中进行适当的分页?

我有一个尺寸(320,160)的UIScrollView 。 我添加了一些UIImageView ,它的大小(213,160)。 第一个从54(x)开始的UImageView等,我在每个UIImageView之间添加了5.0的空间。 我也在IB & coding启用了pagingEnable 。 我的问题是什么,它没有按照其财产正常工作! 当我滚动它应该显示我在每个单一的page UIImageViews ,而不是它显示我喜欢的东西看截图我想输出这样的东西看输出屏幕截图 我在哪里做错了? 我也有< (previous)& > (next)在那里显示图像的function。 我昨天问了一个问题,我接受了,但是我的要求没有什么变化,它不会成为我的解决scheme。 看到我的问题。 我是否有任何特殊的财产,或者我应该执行的逻辑? 所有我已经检查和尝试的例子,但我发现我的要求是一些特殊的。 指点我! 谢谢。 编辑: – (void) setImages { CGFloat contentOffset = 0.0f; for (int i=0; i<[arrImgUrls count]; i++) { CGRect imageViewFrame = CGRectMake(contentOffset, 0.0f, 213, scrollImages.frame.size.height); AsyncImageView *asyncImageView = [[AsyncImageView alloc] initWithFrame:imageViewFrame]; [asyncImageView.layer setMasksToBounds:YES]; […]

通过其内容dynamic设置UIScrollView和UITableView的高度

我相当新的iOS开发,我一直坚持这一两天 我有一个UITableView和UIImageView里面的UIScrollView , UIImageView是在表顶部和高度是静态的,所以我没有任何问题,这个问题是UITableView ,我需要dynamic获取高度基于内容并将该高度设置为表格的高度约束和scrollview的内容。 细胞是自我大小的,所以细胞的高度根据内容而变化。 到目前为止我所能做到的最好的方式是使用UITableView contentSize.height属性来获取高度,但显然这将返回基于estimatedRowHeight的高度,而不是每行的实际高度。 代码: override func viewDidLoad() { super.viewDidLoad() tableView.dataSource = self tableView.delegate = self tableView.estimatedRowHeight = rowHeight tableView.rowHeight = UITableViewAutomaticDimension tableView.layoutIfNeeded() tableHeight.constant = tableView.contentSize.height scrollView.contentSize.height = imageView.bounds.height + tableView.contentSize.height } 我试过了: 通过使用UITableView contentSize.height属性获取高度,如代码中所示,并在之前进行了解释。 在willDisplayCell上分别获取每行的高度,并将其添加到表格的高度约束和scrollview的contentSize中。 但看起来像这样增加了比实际更多的行,给了我一堆在表的末尾的空单元格。 willDisplayCell的代码: let cellHeight = cell.bounds.height tableHeight.constant += cellHeight scrollView.contentSize.height += cellHeight 和以前一样,除了我在cellForRowAtIndexPath尝试了相同的结果。

UITablewView在滚动期间停止渲染

简短的介绍 目前我有一个UITableView充满了自定义单元格,显示正在上传到服务器的文件的上传进度。 上传过程只是使用NSURLConnection的标准asynchronous方法在后台asynchronous运行的NSURLConnection对象。 问题是,在滚动期间,UITableView,或者我想UITableView的UIScrollView,阻止整个主线程,这是否重要的​​信息,如我的file upload过程等都不更新,直到UIScrollView在停滞不前。 研究 现在我碰到了,我觉得在这篇文章中和我的完全一样的问题是:类似的问题 所以似乎整个主线程被阻塞。 我也成功地添加了一个像上面的post,即使在滚动期间也被称为计时器。 但是,不幸的是,这并不能真正解决我的情况。 问题仍然是NSURLConnection对象被阻塞,这意味着NSURLConnection的deletage方法:didSendBodyData 仍然没有被调用,这是我得到新的字节写入到服务器等等,所以我根本无法接收数据。 有没有办法解决这个问题? 我是否需要创build一些自定义的UIScrollView或类似的东西来解决这个限制,比如创build我自己的滚动机制?

滚动视图大小与Autolayout:框架是紧凑型/任何尺寸的类600×480,大于iphone5?

我希望我的scrollview的框架与superview框架的大小相同。 并设置contentize,使其包含所有的imageViews。 问题是与AutoLayout,宽度和高度是600×480,我使用的iPhone5和尺寸类是W:紧凑/小时:任何。(我期望像这样的:320×523)。 我的约束是:与超视图相等的宽度,与超视图(乘法器0.8)相等的高度,水平中心X和垂直中心Y. let pagesScrollViewSize = scrollView.frame.size println("pagesScrollViewSize : \(pagesScrollViewSize)") //600×480 scrollView.contentSize = CGSizeMake(pagesScrollViewSize.width * CGFloat(pageCount), pagesScrollViewSize.height) 会有人知道如何解决这个问题吗? imageview显示比屏幕的框架更大,所以.SizeAspectFit不符合正确的尺寸。 而不是滚动到另一个imageView,它滚动查看图像的其余部分,我不想要的。 编辑: 这是ViewController.swift中的整个代码: class ViewController: UIViewController, UIScrollViewDelegate { @IBOutlet weak var pageControl: UIPageControl! @IBOutlet weak var scrollView: UIScrollView! var pageViews: [UIImageView?] = [] var pageImages : [UIImage?] = [] override func viewDidLoad() { super.viewDidLoad() pageImages […]