相关疑难解决方法(0)

滚动视图中的动态高度TableView

我正在设计一个具有滚动视图的页面,在它上面是一个表格视图(滚动禁用).为此,我在这个问题中引用了答案 - 使UITableView不可滚动并调整高度以容纳所有单元格,但未成功.

视图的层次结构以及提供的约束 -

- 主要观点

-Scroll视图
固定到主视图的所有边(0,0,0,0),约束边距

- 内容视图

固定为滚动视图(0,0,0,0),与主视图的宽度相等,与主视图的高度相等(优先级 - 250)

- 内容视图中的表视图

滚动禁用,从所有边都有50个点空间,高度(> =),底部间距50(关系> =).我放置大于等于动态增加高度.

现在,当我填充表格视图时,我将代码用作

 func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
    {
        let cell = tableview.dequeueReusableCellWithIdentifier("cellreuse", forIndexPath: indexPath) 
        cell.textLabel?.text = name[indexPath.row]

        tableview.frame.size = tableview.contentSize

        return cell
    }
Run Code Online (Sandbox Code Playgroud)

因此,当我运行我的代码时,它增加了tableview框架,但没有拉伸内容大小,它只是变得奇怪,因为我的滚动视图没有滚动到表视图的末尾,我的表视图也不遵循自动布局约束.

uitableview uiscrollview ios autolayout swift

13
推荐指数
2
解决办法
1万
查看次数

如何在异步加载内容时设置UIScrollView contensize

我的视图层次结构就是这样

PhotoDetailViewController.swift

    View
      UIScrollView
        UIImageView
Run Code Online (Sandbox Code Playgroud)

我使用storyboard设置它,并向UIScrollView添加四个约束(top = 0,bottom = 0,leading = 0,tailing = 0),四个约束(top = 0,bottom = 0,leading = 0,tailing = 0)到UIImageView,但有两个错误说

"ScrollView has ambiguous scrollable content width"
"ScrollView has ambiguous scrollable content height"
Run Code Online (Sandbox Code Playgroud)

我知道这是因为我没有设置UIScrollView contentSize,但我想要做的是异步加载PHAsset中的照片,所以我只能在运行时获取照片大小.所以问题是:

1:鉴于照片大小只能在运行时获取,如何解决"模糊可滚动内容"错误?

2:我应该在哪个View的生命周期方法中调用PHImageManager.requestImageForAsset?因为我认为我应该以编程方式设置UIScrollView contentSize,但什么时候?

使用PhotoDetailViewController.swift进行更新

import UIKit
import Photos

class PhotoDetailViewController : UIViewController {

@IBOutlet weak var scrollView: UIScrollView!
@IBOutlet weak var imageViewBottomConstraint: NSLayoutConstraint!
@IBOutlet weak var imageViewLeadingConstraint: NSLayoutConstraint!
@IBOutlet weak var imageViewTopConstraint: NSLayoutConstraint!
@IBOutlet weak var imageViewTrailingConstraint: NSLayoutConstraint!

var devicePhotosAsset : PHFetchResult!
var index …
Run Code Online (Sandbox Code Playgroud)

uiscrollview uiimageview ios contentsize

12
推荐指数
2
解决办法
1445
查看次数

Swift - 以编程方式创建垂直UIScrollView

我一直在寻找一个(工作)教程的日子,甚至是一个使用UIScrollView垂直滚动的示例应用程序,这是编程的.有很多关于使用故事板的教程,让我感到茫然.

我查看了苹果的文档,他们的"指南"仍然没有一个坚实的例子或暗示从哪里开始.

我到目前为止所尝试的是做了以下一些事情.

让我的视图成为一个直接在课堂上的scrollview

let scrollView = UIScrollView(frame: UIScreen.mainScreen().bounds)
Run Code Online (Sandbox Code Playgroud)

然后将其分配给我的viewDidLoad函数中的视图

self.view = scollView
Run Code Online (Sandbox Code Playgroud)

试图更改内容大小.

self.scrollView.contentSize = CGSize(width:2000, height: 5678)
Run Code Online (Sandbox Code Playgroud)

试图启用滚动

scrollView.scrollEnabled = true
Run Code Online (Sandbox Code Playgroud)

以编程方式执行此操作时我能找到的最后一个建议

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    scrollView.frame = view.bounds
}
Run Code Online (Sandbox Code Playgroud)

目前我没有尝试开始将我的对象添加到scrollview,(我不需要缩放,只需要进行垂直滚动),但我没有设法得到任何工作:(事实上,运行应用程序与那些添加只会导致UIProblems,屏幕向上移动奇怪,它不适合我的屏幕的整个宽度?我尝试修复使框架边界等于宽度,但仍然无法正常工作

我没有收到任何错误.

我很想看到一个可以垂直滚动的示例viewcontroller!或任何帮助将非常感谢!

编辑灾难的屏幕截图,尝试使我的视图可滚动导致.

http://i.stack.imgur.com/gQ0SC.png

(链接而不是图像,由于缺少直接放置图像的点.)

(我将滚动视图背景设置为红色,看看它是否显示正确.它似乎是.但我不能滚动到任何地方

正如评论中所建议的那样,我没有使用self.view = self.scrollview,而是尝试将scrollview添加为self.view的子视图,但没有取得积极的结果.

编辑2:

加入

scrollView.contentSize = CGSize(width:2000, height: 5678)
Run Code Online (Sandbox Code Playgroud)

to viewDidLayoutSubviews,如下面的评论中所建议的那样使我的视图可滚动!

然而,由于某种原因,我的布局仍然看起来像一个完全混乱(看起来它应该是,在我使它可滚动之前).

这是我的topBar(蓝色)的示例约束,它应该占据整个水平空间.

self.scrollView.addConstraints(
        NSLayoutConstraint.constraintsWithVisualFormat(
            "H:|[topBar]|", options: nil, metrics: nil, views: viewsDictionary))
Run Code Online (Sandbox Code Playgroud)

任何想法为什么这不起作用?

uiscrollview ios swift

6
推荐指数
2
解决办法
1万
查看次数

AutoLayout,将所有视图放入新的父视图

我已经定义了所有视图并superview在视图控制器中设置了它的约束,但现在我想将所有这些子视图放入a中Scrollview,我发现所有这些约束都消失了.有没有什么好方法可以让它更容易,而不是重置所有这些约束?

以下图片如下:

原点限制

现在,当我将所有这些视图拖入时ScrollView,所有约束都会消失

缺少所有约束

(对不起这两个链接是截图,我没有10个声望发布图片)

storyboard ios autolayout

6
推荐指数
1
解决办法
225
查看次数

scroll view constraint in xcode 11

How to add constraint in xcode 11 there is two new option available when i update xcode to xcode 11

在此处输入图片说明

xcode constraints xcode11

5
推荐指数
2
解决办法
455
查看次数

如何在Swift中设置UIScrollView高度

我正在使用swift来构建一个应用程序.我想使用storyboard向我的视图控制器添加一些内容.

我已经将所有内容放在scrollview中并设置了特定的高度,但是当我运行应用程序时,scrollview的设置总是比视图底部的按钮长

我想滚动视图停在按钮后面

请帮助我如何解决这个问题

谢谢

这是视图的顶部

滚动后(查看按钮提交后的空白内容)

滚动后

为了您的信息,请忽略"评论家"和提交按钮之间的空白区域,因为实际上它们之间有UITextView但不可见(仍然尝试添加一些边框)

这些是我的故事板预览

故事板1

故事板2

xcode uiscrollview uiview ios swift

3
推荐指数
1
解决办法
1万
查看次数

我的带有自动布局约束的 Swift 4 UIScrollView 不滚动

在将视图添加到我的应用程序之前,我已经创建了一个小型演示游乐场来使其工作。

我有一个滚动视图,它将包含许多水平滚动的按钮。我知道这些按钮需要进入滚动视图中的容器视图,并且也创建了它。我最初使用自动布局约束来创建所有这些,但现在尝试使用常量来确保内容视图大于滚动视图。但是,按钮仍然不会滚动......我错过了什么吗?滚动视图不适用于自动布局吗?

我也在我的 iPad 上以编程方式执行所有这些操作,因此不幸的是,使用界面构建器的解决方案不是一种选择...

这是完整的代码:

import UIKit
import PlaygroundSupport

class FilterViewController: UIViewController {
    var filterView: UIView!
    var scrollView: UIScrollView!
    var containerView: UIView!

    override func loadView() {
        filterView = UIView()
        view = filterView
        view.backgroundColor = #colorLiteral(red: 0.909803926944733, green: 0.47843137383461, blue: 0.643137276172638, alpha: 1.0)

        scrollView = UIScrollView()
        scrollView.backgroundColor = #colorLiteral(red: 0.474509805440903, green: 0.839215695858002, blue: 0.976470589637756, alpha: 1.0)
        view.addSubview(scrollView)
        scrollView.translatesAutoresizingMaskIntoConstraints = false
        scrollView.topAnchor.constraint(equalTo:view.topAnchor, constant:40).isActive = true
        scrollView.leadingAnchor.constraint(equalTo:view.leadingAnchor).isActive = true
        scrollView.widthAnchor.constraint(equalTo:view.widthAnchor).isActive = true
        scrollView.heightAnchor.constraint(equalToConstant: 200).isActive = true
        scrollView.isScrollEnabled = true

        containerView = UIView() …
Run Code Online (Sandbox Code Playgroud)

uiscrollview ios programmatically-created swift swift-playground

3
推荐指数
1
解决办法
8574
查看次数

如何解决iOS故事板中的不等式约束歧义?

下面是我当前视图控制器的屏幕截图.

在此输入图像描述

我正在尝试解决的问题是当前容器视图文本被固定到UIView的顶部.

我有这样设置在较小的设备上它有一个滚动视图,这样我最容易可视化和布局元素.

所以我的目标是在UIView /容器视图(左侧)上设置最大高度,使其最大高度为190px(因为这是内容最高的).

在此输入图像描述

我尝试了上面的解决方案,但它给了我一个错误说inequality constraint ambiguity.

我的目标是最大高度为190px,水平和垂直居中.

我怎样才能做到这一点?

编辑

更改底部空间以管理订阅=而不是> =会产生以下结果.

在此输入图像描述

iphone uiview ios uistoryboard uicontainerview

2
推荐指数
1
解决办法
1900
查看次数