- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个直接包含在 View Controller 的内容 View 中的 ScrollView ,在两个维度上都是全尺寸的。从 ScrollView 到其超 View (水平)和布局指南(垂直)的顶部、底部、前导和尾随空间约束都设置为 0。 VC 最终意味着作为 subview Controller 嵌套在一两个 View 中地方。我正在使用 Storyboard。
我在 ScrollView 中放置了许多元素并将它们约束到它,但我看到了各种奇怪的行为。下面是一个屏幕截图,其中选择了 ScrollView 的所有 subview 来显示它们的约束。 ScrollView 对顶级 View 的四个约束在其中不可见。 View Controller 已设置为 Freeform 大小,其顶级 View (以及相应的 ScrollView 的内容 View )高 616 pts,确保在运行时需要滚动。
在分析屏幕截图之前,这里列出了我想要实现的目标。
scrollView.frame.size.width-40
宽,但没有更宽。
最佳答案
关于 Xcode 关于错位 View 的警告,在 Storyboard中选择 View Controller ,点击 Canvas 右下角的“解决自动布局问题”按钮(它看起来像星球大战中的 Tie Fighter),然后选择“更新 View Controller 中的所有帧”。这会强制您的所有 View 都反射(reflect)它们的约束。
使用自动布局 UIScrollView
是一种不同的动物;如此之多,以至于 Apple 认为有必要发布有关该问题的技术说明:https://developer.apple.com/library/ios/technotes/tn2154/_index.html
当您在 subview 和 ScrollView 的内墙之间连接所有这些约束时,结果可能不是您所期望的。当您将 subview 固定到 ScrollView 的两侧时,您实际上并没有确定 subview 相对于 ScrollView 的位置。相反,您正在确定 ScrollView 的 contentSize
.这很奇怪。
您正在使用技术说明中 Apple 所谓的纯自动布局方法。使用这种方法, subview 的约束必须决定 ScrollView 的 contentSize
.
让我们只取您的一个 subview 并忽略所有其余的,比如 TextView 之一。让我们只考虑沿水平轴的 TextView 。如果您希望 TextView 在没有任何水平滚动的情况下受 ScrollView 的宽度约束,则需要在 TextView 上安装固定宽度约束,该约束恰好是 ScrollView 边界的宽度减去间隔符。这样做之后,内容大小宽度将是左间隔、 TextView 的宽度和右间隔的总和。
不幸的是,您无法安装在 TextView 的宽度和 ScrollView 边界的宽度之间建立关系的约束。这真的太糟糕了。
我实际上并不建议在 TextView 上安装固定宽度约束。相反,我会重新开始并使用 Apple 技术说明中的“混合方法”。
使用混合方法, subview 的约束不会决定 ScrollView 的 contentSize
.相反,您必须显式设置 ScrollView 的 contentSize
和容器 View 的框架(即 UIView
内容 View )。
让我们回到那个 UITextView
和水平轴。使用混合方法,您可以保留 TextView 的约束(即没有固定宽度约束)。您可以显式设置 ScrollView 的宽度 contentSize
和内容 View 框架的宽度早在viewDidLoad
.您可以将这些值显式设置为 self.view.bounds.size.width
因为您的 ScrollView 紧贴主 View 的两侧。
要实现混合方法,您必须在代码中实例化内容 View ( UIView
)和 不是 设置其 translatesAutoresizingMaskIntoConstraints
属性(property)到NO
.通过扩展,您可能还需要为代码中的所有这些 subview 创建约束(我不知道有任何解决方法)。视觉格式化字符串既乏味又重复,但在配置复杂布局(您的布局足够复杂)时,它们实际上比在 IB 中创建的约束更容易使用。
我在这里使用混合方法解决了一个 SO 挑战:https://stackoverflow.com/a/21770179/1239263 .不幸的是,该解决方案尚未经过审查。我总是有可能疯了,我不知道我在说什么。
关于ios - 没有明确的宽度约束和更大或相等的尾随空间行为不当的自动布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21761937/
我正在 Java 上开发 Tic Tac Toe 游戏(eclipse)。在我的计算机上,我的对话框非常小。我一直在努力把它做得更大。我没有任何运气。我希望这里有人能引导我走向正确的方向。下面的代码是
出于辅助功能的目的,我需要使所有可滚动控件(列表、 ListView )的滚动条更宽,滚动条箭头更大。 如何从可滚动控件(例如:TListView)获取滚动条( handle )? 如何使滚动条和箭头
在我的 flutter 应用程序中,我想制作一个圆圈作为这样的背景: 最佳答案 问题主要是当屏幕处于横向时,除非它覆盖整个屏幕,否则你不能在那里放置一个圆圈。 ClipRect 还有另一种方法,如果这
如何在列表中找到最接近的值,这将返回更高的值?示例:[3,7,12,19] 的列表,如果我的值为 8,我如何获得最接近(更大)的值 12?我想要 dart 中的这个逻辑。 最佳答案 只需过滤 List
我是一个绝对的 HTML 和 javascript 初学者,我很确定,这真的很容易实现。我生成了以下 IFRAME: document.write("");Das aktuelle Wetter in
我有点知道为什么压缩 DES 文件时它更大,但谁能给我正确的理由或链接,我似乎找不到任何原因? 谢谢:) 最佳答案 经过适当加密的密文在压缩程序看来非常像一系列随机数。如果没有以明文形式出现的模式,压
假设我有两个表,其中一个(我们称之为 person)有一个名为 type 的字段,该字段存储链接到另一个表的整数(我们称之为types 带有一个名为 id 的字段。什么会更能提高性能? 一个更大的查询
我有一个ListView,它使用GridView来显示DataTable,并且当新行添加到DataTable
我在只出现在 Firefox 中的导航菜单上遇到了一个奇怪的问题(在 IE7、8、9、10 和 Chrome 中工作正常)。菜单上的链接显示为 block ,但它们在 Firefox 中计算得比任何其
我正在使用 javax.mail 并获取邮件收件箱文件夹中的邮件计数。使用https://outlook.office.com/ Folder folderInbox = store.getFolde
我想让地球字形图标更大,以便它覆盖页面的大部分(它是矢量图像)。它不在按钮或任何东西中;它只是一个人。有没有办法做到这一点? 最佳答案 增加 glyphicon 的 font-size
我定制了一个看起来像这样的搜索栏 问题是很难捕获 slider 。所以我想做的是增加拇指的碰撞箱以使其更容易。我尝试了一些东西,但总是弄乱了搜索栏的外观。我有什么想法可以做到这一点吗? 布局.xml
我有一个问题:下载到 Documents 文件夹中的音乐比以前长 2 倍,而且体积更大。比特率也有问题(增加/减少 2 倍)。图片保存得很好,但任何音乐都有问题。也许我需要手动设置音频比特率,但我还没
为什么 div 区域仍然比图像 css 大? /image/WHDU3.jpg 如何设置 div 区域以适合图像? 最佳答案 IMG - 是行内元素,因此
我发现在对文本文件进行排序时非常困惑。不同的算法/应用程序会产生不同的结果,例如,比较两个字符串 str1=";P" 和 str2="-_-" 仅供引用,这里给出了这些字符串中每个字符的 ASCII:
我有一个应用程序已经在 Play 商店中存在多年,我刚刚构建了一个更新。该更新利用了 numberpicker,它的 min-sdk 为 11,并且在 v4 支持库中不适用。我倾向于发布我的新版本并在
你能告诉我如何强制 CSS 使 line-through 属性比元素 width 宽吗? 例如 50 结果看起来像现在如何使线条比元素更宽更明显? 赞 最佳答案 你可以使用 ,这是一种很俗气的方式 &
我想制作一个比应有的大得多的虚拟 Win32 EXE 文件。所以默认情况下,样板 Win32 EXE 文件为 80 KB。我想要一个 5 MB 的空间来测试其他一些实用程序。 第一个想法是添加资源,但
我有一个 UIView,里面有一个更大的 UIImageView。有没有办法隐藏超出 View 大小的内容? CGRect baseFrame = CGRectMake(100, 100, 300,
当我改变缓冲区的大小时,我得到了无法从 BufferedReader 解释的奇怪结果。 我曾强烈期望性能会随着缓冲区大小的增加而逐渐增加, yield 递减设置相当快,此后性能或多或少会持平。但看起来
我是一名优秀的程序员,十分优秀!