问题标签 [snapkit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
3028 浏览

ios - 在 Swift 中自动调整多行 UILabel

我已经尝试了一切来在 Swift 中自动调整我的 UILabel 大小。当它是一行时,我可以自动调整文本的大小,但是当它是两行时,它不再起作用。UILabel 中的文本通常大约每 10 秒发生一次更改。我试过的代码是:

原始文本“Ffafdafafdfa fafda dfafaf afa”将自动调整大小,但是当调用 updateDirection 时,字体大小不会从 40 更改。我还尝试将行数设置为 2 并删除 .byWordWrapping。如何让我的 UILabel 自动调整大小?

0 投票
2 回答
2693 浏览

ios - Swift:使用 snapkit 时如何获得正确的 UICollectionView 高度?

我可能会以完全错误的方式解决这个问题,因为我尝试做的事情应该很简单......我有一个包含几个子视图的视图组件,其中一个是 UICollectionView。我使用 SnapKit 布局子视图。UICollectionView 是按钮的流布局,跨越 0-n 行,按钮的数量从一开始就知道。

当我通过 SnapKit 配置约束时,集合的高度为 0,因为不存在任何项目(仍然没有调用 cellForItemAt)。

我将如何在 SnapKit 中动态设置集合的高度?或者有没有更好的方法来获得我正在寻找的非常基本的流程布局(使用动态高度调整)?

(注:代码有点简化,只显示相关部分)

谢谢!

编辑:添加了缺失的课程

谢谢楼下的回复。它确实有效,即使我错过了包含一半代码,你也能得到这个问题 :-) 下面是缺失的部分,它是使用 CategoryList 的类。在您的帮助下,我让 CategoryList 动态扩展到正确的高度,这非常好。但是,它会打乱周围视图(下面的 view1 和 view2)的位置。我怀疑这与

make.height.equalTo(categoryList.collectionView.snp.height)

行,也许它应该只引用 collectionView 约束属性,但我不知道应该(甚至可以)怎么做?

0 投票
1 回答
155 浏览

swift - SnapKit 中的不稳定错误

以下是我的 viewDidAppear() 方法,我正在尝试为我的应用程序设计一个功能的原型。graphicsView 实例变量通过情节提要绑定到我编写的 NSView 子类的实例,该子类又包含在 NSSplitView 内的 NSScrollView 中。此代码位于该视图的视图控制器中。

执行时,我Cannot form weak reference to instance (0x6000001224e0) of class NSTextView. It is possible that this object was over-released, or is in the process of deallocation.在约束的尾随闭包的右括号上收到错误以及通常的 EXC_BAD_INSTRUCTION 错误。

据我所见, NSTextView 将被强烈保留box,所以我不知道错误的来源。错误出现在第一行ConstraintItem.init(target: AnyObject?, attributes: ConstraintAttributes)。根据我在此处发布的自述文件中的说明;SnapKit 团队中的某个人可能会对该错误有任何额外的了解吗?(如果我删除box-related 代码,该应用程序将正常运行。)

补充资料:

异常发生在 ConstraintItem.swift 的第 37 行,即self.target = target. 我在该行之前设置了一个断点并在调试器中执行 e 目标;这是我得到的:

0 投票
2 回答
1734 浏览

ios - 使用 SnapKit 的 UICollectionViewCell 布局

我有一个简单的 UICollectionViewCell,它是全宽的,我正在使用 SnapKit 来布局它的子视图。我将 SnapKit 用于我的其他视图,它运行良好,但不在 collectionViewCell 中。这是我想要实现的布局: collectionViewCell layout

collectionViewCell 的代码是:

在不应用任何约束的情况下,imageView 会显示在单元格的左上方,但应用任何约束会使图像消失。在调试视图中检查 collectionViewCell 会显示 imageView 和约束,但“UIImageView 的大小和水平位置不明确”。

我还尝试设置 contentView.translatesAutoresizingMaskIntoConstraints = false 等,但结果相同。

我正在使用所有代码,没有故事板 UI 或布局。

谢谢你的帮助!

0 投票
2 回答
848 浏览

ios - Snapkit 和 UILabel 的轮换

我有:

  1. UIView(容器)
  2. 界面视图。(1) 的子视图 - 下图中的深蓝色
  3. 界面视图。(1) 的子视图 - 下图中的紫色
  4. UIL标签。edge.equalToSuperview()

我要完成的工作:

我想要完成的事情

问题是,我希望 UILabel 旋转 3pi/2 (270°)。一旦我完成了旋转,它就没有正确放置。

这是通过设置 edges.equalToSuperview() 和 270°旋转后的样子: 这就是旋转和边缘的外观。equalToSuperview()

我试过这个(但它会导致崩溃):

崩溃描述:

有什么想法我可以在这里做什么吗?

0 投票
1 回答
871 浏览

ios - Koloda - 加载时的动画随机播放效果

我正在使用Koloda来展示一副可以刷过的扑克牌。我的这部分工作得很好。

当我最初加载这副卡片时,我希望每个视图/卡片分别飞入,然后显示为堆叠。我将其称为洗牌或deal效果(例如当您发牌时)。据我所知,科洛达似乎不允许这样做。我看到的动画是在它们已经堆叠之后显示整个视图/帧堆栈。所以在我的例子中,这意味着整个甲板。我也看不到一种在不导致完全重新加载的情况下逐个添加视图/卡片的方法。

如果我有 3 张卡,这就是我希望它如何工作

卡片 1(甲板底部以动画方式从左侧飞入)

.2 秒等待

卡 2 (从甲板底部的第二张/中间卡飞入)

.2 秒等待

卡片 3(甲板顶部飞入)

继续正常的 Koloda View。

我尝试将动画添加到作为 contentViews 添加的 UIViews,但它看起来不正确。我目前的猜测是使用自定义动画,animateAppearanceWithCompletion但我运气不佳。还有一种frameForCard方法可行吗?

如果有帮助,我将在项目中使用 Snapkit。我的目标是 iOS 9+

0 投票
2 回答
136 浏览

ios - 如何使约束使用视图数组中高度最高的视图

假设我有 4 个视图,连续 3 个,另一排有 1 个。第一行的那些具有动态高度,我们不知道它们有多高。

我想从这张图片中获得结果:

在此处输入图像描述

基本上我想在第一行设置 View 4 的从上到下的最高视图。我怎样才能做到这一点?

0 投票
1 回答
869 浏览

ios - 在使用 SnapKit 的 iOS 上,为什么子视图的原点不是其父视图的原点?

通常,当您想到父视图-子视图的关系时,人们会倾向于期望子视图的原点将包含在父视图中(通常是父视图的原点)。然而,在UIKitiOS 上,情况似乎并非如此。为什么子视图的原点 (0,0) 的UIWindow

为了演示,下面的代码生成了两个 UIView,一个是另一个的子视图。由于某种原因,innerView原点似乎是整个UIWindow. 我希望原点innerView是原点outerView(其原点由其超级视图的中心点决定)。

我得到什么:

实际的

我想要的是:

添加额外的SnapKit约束线将innerView原点设置为原点,outerView但我发现这一步是无关紧要的。

预期的

这可能是对 iOS 中视图层次结构的根本误解,因为我一直依赖 Storyboards。这是我第一次涉足 iOS 上的程序化 UI,所以我仍在思考所有的细微差别。现在,证据使我相信每个视图——无论它存在于视图层次结构中的哪个位置——都从 key 的位置 (0,0) 开始UIWindow

0 投票
0 回答
384 浏览

ios11 - dyld: Library not loaded: @rpath/libswiftMetal.dylib on iOS 11(15A5304j) with Xcode 9 beta 6

I'm trying to provide iOS 11 support to my existing project but when I launch my existing project, my app gets crash as soon as it launches with following error at Xcode console

I know there are lots of answer around this already but nothing worked for me.

Note: I'm using iOS 11 iPad and Xcode-beta 5

Update 1: this problem occurs on my iPad iOS11(15A5304j), on iPhone 6plus iOS 11(15A5327g) works fine.

0 投票
1 回答
9610 浏览

ios - 在 Swift 3 中使用 SnapKit 以编程方式修改约束以删除一个 UIView

我正在使用 SnapKit 修改 UIView 高度的约束,该约束由 nameTextField 及其 superView inputContainerView 组成。我安排nameTextField的高度等于inputContainerView的高度的三分之一。我的目的是在按下 SegmentedControl 时删除 nameTextField。当我尝试修改常量时,它工作得很好。但是当我尝试将乘数高度值从 (1/3) 修改为 0 时,有时它会崩溃,有时我编写的另一个 textField(passwordTextField 和 emailTextField)会消失。我正在使用 updateContraint 来更新一些约束。我该如何解决这个问题?谢谢

这是显示的图像: 在此处输入图像描述 在此处输入图像描述