标签: uiscrollview

无法使用PureLayout设置滚动视图

viewDidLoadUIViewController子类中有以下方法实现:

var scrollView  = UIScrollView.newAutoLayoutView()
var contentView = UIView.newAutoLayoutView()

override func viewDidLoad() {
    super.viewDidLoad()

    view.addSubview(scrollView)
    scrollView.autoPinEdgesToSuperviewEdgesWithInsets(UIEdgeInsetsZero)

    scrollView.addSubview(contentView)
    contentView.autoPinEdgesToSuperviewEdgesWithInsets(UIEdgeInsetsZero)
    contentView.autoMatchDimension(.Height, toDimension: .Height, ofView: view)
    contentView.autoMatchDimension(.Width, toDimension: .Width, ofView: view)

    contentView.addSubview(customView)
    customView.autoPinEdgeToSuperviewEdge(.Top, withInset:0)
    customView.autoPinEdgeToSuperviewEdge(.Left, withInset:15)
}
Run Code Online (Sandbox Code Playgroud)

但是,当我运行应用程序时,内容不会滚动.我发现很少有PureLayout文档和示例,并且没有关于滚动视图的清楚.有人可以帮我这个吗?

uiscrollview ios autolayout swift pure-layout

0
推荐指数
1
解决办法
593
查看次数

最佳实践UIScrollView

我在iOS中使用uiscrollview时遇到内存问题.

我有一个带有巨大子视图的滚动视图(4000x600).在这个子视图中,我有其他UIImageViews作为子视图.

情况就是这样:

测试

当我打开scrollview时,我可以看到内存和进程都在急剧增加.

我想知道解决问题的方法是:将所有视图直接添加到scrollview,而不是传递到"中间"巨大视图是否更好?

提前致谢.

uiscrollview uikit ios

0
推荐指数
1
解决办法
216
查看次数

使用Swift中的UIScrollView从用户的触摸点放大图像

下面的Swift代码管理放大和缩小UIImage内部a UIScrollView.

双击时,图像放大到中心并缩小到中心.

题:

需要进行哪些代码更改才能将放大点设置为用户在屏幕上触摸的图像区域的中心?

(例如,如果用户双击图像的左上角,图像将相应地放大图像的左上角.)

class ScrollViewController: UIViewController, UIScrollViewDelegate {
    var scrollView: UIScrollView!
    var imageView: UIImageView!

    override func viewDidLoad() {
        super.viewDidLoad()

        imageView = UIImageView(image: UIImage(named: "image.png"))

        scrollView = UIScrollView(frame: view.bounds)
        scrollView.backgroundColor = UIColor.blackColor()
        scrollView.contentSize = imageView.bounds.size
        scrollView.autoresizingMask = [UIViewAutoresizing.FlexibleWidth, UIViewAutoresizing.FlexibleHeight]

        scrollView.contentOffset = CGPoint(x: 1000, y: 450)

        scrollView.addSubview(imageView)
        view.addSubview(scrollView)

        scrollView.delegate = self
        setZoomScale()
        setupGestureRecognizer()
    }

    func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {
        return imageView
    }

    override func viewWillLayoutSubviews() {
        setZoomScale()
    }

    func setZoomScale() {
        let imageViewSize = imageView.bounds.size …
Run Code Online (Sandbox Code Playgroud)

optimization uiscrollview uiimage ios swift

0
推荐指数
1
解决办法
3301
查看次数

我知道如何禁止在顶部弹出uitableview - 但我怎么能只在底部进行?

当用户滚动到顶部时,我设法禁用弹跳效果.我想以某种方式反转它,以便在底部禁用弹跳效果.你可以帮我修改我的代码吗?

var lastY: CGFloat = 0.0

func scrollViewDidScroll(scrollView: UIScrollView) {
    let currentY = scrollView.contentOffset.y
    let currentBottomY = scrollView.frame.size.height + currentY
    if currentY > lastY {
        //"scrolling down"
        tableView.bounces = true
    } else {
        //"scrolling up"
        // Check that we are not in bottom bounce
        if currentBottomY < scrollView.contentSize.height + scrollView.contentInset.bottom {
            tableView.bounces = false
        }
    }
    lastY = scrollView.contentOffset.y
}
Run Code Online (Sandbox Code Playgroud)

uitableview uiscrollview ios swift

0
推荐指数
2
解决办法
4488
查看次数

键盘重叠时向上移动UITextField

在ViewA之上有一个子视图.请在下面找到屏幕布局.当选择UITextField时显示键盘,即使它与UITextField不重叠,视图也会向上滚动.

ViewA
  -> UIButton

subView
  -> UIScrollView
        -> UITextField
        -> UITextField


   ViewA
 -----------
|           |
|           |
|  Button   |
|           |
|           |
 -----------

   subView
 --------------
|              |
|              |
|  UITextField |
|  UITextField |
|              |
 --------------
Run Code Online (Sandbox Code Playgroud)

我已经注册了键盘通知

    - (void) viewWillAppear:(BOOL)animated {

        [[NSNotificationCenter defaultCenter] addObserver:self
                                                 selector:@selector(keyboardDidShow:)
                                                     name:UIKeyboardDidShowNotification
                                                   object:nil];

        [[NSNotificationCenter defaultCenter] addObserver:self
                                                 selector:@selector(keyboardWillBeHidden:)
                                                     name:UIKeyboardWillHideNotification
                                                   object:nil];
    }


- (void) keyboardDidShow:(NSNotification *)notification {

            NSDictionary* info = [notification userInfo];
            CGRect kbRect = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue];

            UIEdgeInsets contentInsets = UIEdgeInsetsMake(0.0, 0.0, kbRect.size.height, …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c uiscrollview ios autolayout

0
推荐指数
1
解决办法
202
查看次数

如何从TableView的顶部删除顶部空间?

在我的视图控制器中,我有1个具有不同数据的表视图。

顶部蓝色是“视图”,底部蓝色是TabBar。

在主屏幕中,顶部是“视图”,在“趋势”屏幕中,我通过将其约束更改为0来隐藏它。

  1. 家和2.趋势

当我滚动tableview以查看新帖子时以及单击趋势视图时,我会在TableView中加载新数据并在tableview顶部滚动代码。

dispatch_async(dispatch_get_main_queue(), ^{
        [self.tblVW setContentOffset:CGPointZero animated:NO];
        [self.tblVW reloadData];
    });
Run Code Online (Sandbox Code Playgroud)

但它不会移到表格视图的顶部。

顶部有一个空格,当我触摸tableview时,它将滚动到顶部。

iphone uitableview uiscrollview ios

0
推荐指数
1
解决办法
1350
查看次数

在Swift中布局后获取UIScrollView的高度

我有一种情况,我正在使用UIScrollView来帮助使用较小手机的用户查看窗口内的全文.我想要显示一个图像图标,如果他们需要滚动(只是为了让他们知道窗口内有更多)但我在使用Swift找到滚动视图的高度时遇到了问题.

这是我的对象的层次结构

在此输入图像描述

基本上,这4个标签适合4.7"iPhone而不是4"iPhone.我尝试设置一些逻辑来检查UIScrollView内容是否大于窗口,但它似乎没有工作.我一直认为高度为零.

我使用scrollHeight = scrollView.contentSize.height,并试图把那里面viewDidLoad(),viewWillAppear()viewDidLayoutSubviews()但每次它最终被0.

contentSize我应该用它来检查高度是正确的吗?

uiscrollview swift3 xcode8

0
推荐指数
1
解决办法
2836
查看次数

在UITableView - Swift 3,iOS中水平滚动

我需要水平滚动屏幕底部的缩略图列表,其中显示了所有用户最近拍摄的照片/视频.

我在其中创建了一个带有UITableviewUIScrollView.

这是正确的方法,因为我似乎无法在其超类中找到滚动方向的覆盖方法吗?我在网上找到的大多数主题都涉及将UIscrollview放在TableCell中,这对我的特定应用程序不起作用?

层次结构是:

查看> 滚动视图 >表视图> 表格Cel >内容> PhotoThumbnail

下面是我正在尝试做的截图: 在此输入图像描述

xcode uitableview uiscrollview ios swift

0
推荐指数
1
解决办法
7305
查看次数

带有UIScrollView的图像滑块

我正在制作一个图像滑块,该滑块每2秒自动滑动一次。我编写的代码可立即移动到下一张没有幻灯片动画的图像,我想通过显示scrollview滚动以某种方式修复它,这是我的代码:

var imagesArray = [UIImage]()
static var i = 0

override func viewDidLoad() {
    super.viewDidLoad()
    imagesArray = [image1, image2, image3, image4]
    for i in 0..<imagesArray.count{
        let imageview = UIImageView()
        imageview.image = imagesArray[i]
        imageview.contentMode = .scaleAspectFit
        let xPosition = self.view.frame.width * CGFloat(i)
        imageview.frame = CGRect(x: xPosition, y: 0, width: self.imagesScrollView.frame.width, height: self.imagesScrollView.frame.height)
        imagesScrollView.contentSize.width = imagesScrollView.frame.width * CGFloat(i+1)
        imagesScrollView.addSubview(imageview)
    }
}

override func viewDidAppear(_ animated: Bool) {
    let scrollingTimer = Timer.scheduledTimer(timeInterval: 2, target: self, selector: #selector(MenuViewController.newStartScrolling), userInfo: nil, repeats: true)
    scrollingTimer.fire()

func …
Run Code Online (Sandbox Code Playgroud)

uiscrollview swift3

0
推荐指数
1
解决办法
1515
查看次数

键盘多次出现时,Scrollview不会向上移动

我做了30个文本框,并var scrollview: UIScrollViewviewDidLoad()和我试图拉升整体向上滚动视图时,键盘盖文本框。Delegate的文本字段和scrollview已经设置。此代码(下面向下)有效,并且第一次出现键盘时scrollview会向上移动,但是问题是,当第二次或更多次打开键盘时,scrollview不会向上移动,我一直无法解决问题几个小时。谁能在我的代码中检测到一些错误并给出正确答案?我期待任何帮助!

我写的代码是这样的:

var activeField: UITextField?

func registerForKeyboardNotifications(){
    NotificationCenter.default.addObserver(self, selector: #selector(keyboardWasShown(notificaiton:)), name: NSNotification.Name.UIKeyboardWillShow, object: nil)
    NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillBeHidden(notification:)), name: NSNotification.Name.UIKeyboardWillHide, object: nil)
}

func deregisterForKeyboardNotifications(){
    NotificationCenter.default.removeObserver(self, name: NSNotification.Name.UIKeyboardWillShow, object: nil)
    NotificationCenter.default.removeObserver(self, name:NSNotification.Name.UIKeyboardWillHide, object: nil)
}

@objc func keyboardWasShown(notificaiton: NSNotification){
    var info = notificaiton.userInfo!
    let keyboardSize = (info[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue.size
    let contentInsets: UIEdgeInsets = UIEdgeInsetsMake(0.0, 0.0, keyboardSize!.height, 0.0)
    var aRect: CGRect = view.frame
    aRect.size.height -= keyboardSize!.height

    if let activeField = activeField{
        if !aRect.contains(activeField.frame.origin) == …
Run Code Online (Sandbox Code Playgroud)

uiscrollview ios swift swift4

0
推荐指数
1
解决办法
1608
查看次数