问题标签 [uitraitcollection]

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 投票
0 回答
284 浏览

ios - UISplitViewController iOS8 中的细节视图控制器不会调用大小方法

我有一个UIViewController包含一个UICollectionView使用一个UICollectionViewFlowLayout. 视图控制器是UISplitViewController.

视图控制器是流布局的委托,其大小UICollectionViewCells是根据集合视图中的可用空间计算的。(例如itemSize = width/3,height/2

iOS8Apple 中引入了用于折叠拆分视图控制器的主控部分的 API。

我想在集合视图展开时使我的集合视图的布局无效,以强制重新计算项目大小。

我想在引入的新尺寸方法中添加适当的代码iOS8- 但是在折叠主端时没有调用它们。

这是我尝试过的代码。它不被称为:

0 投票
1 回答
260 浏览

cocoa-touch - 实时渲染中的 IBDesignables 和 traitCollection

我正在构建我的自定义 UIControl,这是一个构建为 IBDesignable 的自定义按钮,它需要根据显示它的大小类进行更改。我有一个方法-setupForTraitCollection,它看起来像这样:

这段代码在编译时工作得很好,但在实时渲染中,并且在调试视图时,它永远不会碰到“iPad”开关盒。我开始在这里放弃并简单地接受 traitCollections 在实时渲染中不可用,但我想确认这一点。更好的是,如果有人能指出我找到解决方案的方向。

所以最重要的问题是——我可以在 IBDesignable 中使用 traitCollections 吗?如果可以,如何使用?

我真的很希望能够在 IB 中更改大小类并在我的自定义控件上查看结果。

0 投票
0 回答
162 浏览

ios - 大小类和 dequeueReusableCellWithIdentifier

我正在尝试计算 UITableViewCells 的高度。我通过在 UITableView 上调用 -dequeueReusableCellWithIdentifier: 然后在单元原型上调用 -systemLayoutSizeFittingSize: 从情节提要中配置的动态原型创建原型单元实例。问题是在情节提要中为单元格配置的 traitCollection 和约束始终是我为 Any:Any 设置的,并且单元格的框架始终为 320pt 宽。这似乎是错误的。有什么我想念的吗?有没有其他方法我应该布置单元格以使用大小类并实例化它们?使用 -dequeueReusableCellWithIdentifier:forIndexPath: 创建的单元格具有正确的 traitCollection 和约束值,但我显然不能使用它来创建“原型”

0 投票
3 回答
1929 浏览

iphone - 基于视图大小的自适应 UIPresentationController

我正在UIPresentationController为我的视图控制器转向基于演示文稿,但对 API 感到有些困惑。

我有一个自定义侧边栏样式视图控制器演示文稿(类似于LookInsideWWDC 2014 演示代码)。

此类集群(UIPresentationControllerUIViewControllerTransitioningDelegateUIViewControllerAnimatedTransitioning)在常规尺寸的类视图上将视图控制器呈现为屏幕边缘的侧边栏,并在紧凑尺寸的类视图上将相同的视图控制器呈现为全屏。

在 Resizable iPad 目标上进行测试显示了正确的行为:我将水平尺寸类设置为“紧凑”,并且我的视图控制器从侧边栏切换到全屏。

但是,我想要更多的粒度。当设备处于横向时,我想在 iPhone 6 和 6+ 上使用侧边栏样式的视图控制器演示,并为所有纵向的 iPhone 使用全屏样式演示。

所以在我的方法中

我实现了一些逻辑来检测侧边栏是否会占用过多的屏幕,假设我使用以下条件:

然而,这无济于事。状态的文档UIPresentationController.overrideTraitCollection

使用此属性来指定要应用于呈现和呈现视图控制器的任何特征。您指定的特征会覆盖当前对视图控制器有效的任何现有特征。此属性的默认值为 nil。

为该属性分配一个新值会导致演示控制器转换到新的特征集,这可能会导致呈现界面的动画。

将新值分配给呈现控制器不会导致我呈现的界面发生任何变化。(即使我指定了overrideTraitCollection从对象UIPresentationController内创建的时间UIViewControllerTransitioningDelegate。)

我错过了什么?UIPresentationController是否可以在更精细的级别上执行自适应演示?

0 投票
1 回答
618 浏览

ios - 用于更新大小类的 UITraitCollection 类

我应该使用 UITraitCollection 类来更新大小类约束吗?这是更新约束的最佳实践吗?

我已经通过了UITraitCollection,但不知道如何区分纵向和横向?

0 投票
1 回答
509 浏览

objective-c - 防止 UIPopover 在 iPhone 6 plus 横向显示为 UIPageSheet

我正在尝试显示popOver带有UISlider内部的 a,以允许用户控制textSizea 的WKWebView

这是我的做法:

在自定义中ViewController,我只是添加了一个委托来获取UISlider

我也实现了这个方法:

除了 iPhone 6 Plus 在横向(即紧凑高度)之外,所有设备都可以正常工作,它显示popoverUIPageSheet

注意:我在 a 中展示了aUIbarButtonItem中的弹出框detailViewControllerUISplitViewController

0 投票
0 回答
208 浏览

ios - iPhone / iPad 的 UITraitCollection 保持不变

在 iOS 8.3 中,我展示了一个带有以下代码的视图控制器:

在我的 iPad 模拟器中演示后,我在方法中检查了我的视图 ( po self.traitCollection)的 UITraitCollection 属性,viewDidLoad()这是我得到的:

我将模拟器从 iPad 切换到 iPhone(5s 或 6),但在我看来,我仍然获得了常规水平尺寸类特征。iPhone 应该具有 Compact 水平尺寸类特征。

由于水平尺寸类是错误的,因此从情节提要中加载了错误的尺寸类设计。任何想法为什么框架提供错误的大小类?

0 投票
0 回答
743 浏览

ios - viewDidLoad 和 self.traitCollection 未定义

我看到在 viewDidLoad 中未定义 self.traitCollection 的时候:

如果我进行以下简单演示 - 未设置特征(在 viewDidLoad 中:)

但是,如果我使用 UIModalPresentationCurrentContext ,则设置特征(在 viewDidLoad 中:)

仍然奇怪 - 如果我按如下方式插入导航控制器,则设置特征(在 viewDidLoad 中:即使使用全屏演示模式)

显然我的“解决方案”是使用 CurrentContext - 但我不清楚这是一个错误还是我理解的差距。任何指针都将受到欢迎。

我正在使用 iOS 8.3

谢谢

0 投票
1 回答
839 浏览

ios - UITraitCollection - 快速到 Objective-C

我正在尝试将swift转换为objective-C。下面是我的代码:

迅速

Objective-C 头文件

.m 文件

我的猜测是 overrideTraitCollectionForChildViewController 没有正确转换。对此的任何帮助都会很棒。

0 投票
1 回答
692 浏览

ios - iOS8 更改 UIPopoverPresentationController 特征集合

我正在 iphone 和 ipad(iOS7 和 iOS8)上部署一个应用程序。
我正在使用带有尺寸等级的故事板,基本上我有一个适合 iPad 布局的基本尺寸等级 Any-Any 和适合所有 iphone 型号的 Compact-Regular。
iPad 版本中的一些视图控制器带有自定义的滑入/滑出序列,其他的带有弹出框。
虽然它在 iOS8 上的 iOS7 ipad 上完美运行(因为 xcode 构建了不同的故事板),但我遇到的问题是弹出窗口中显示的内容选择了 iphone 界面。
我以通常的方式呈现它:

检查代码我看到呈现的视图控制器有一个UITraitCollectionCR。
有没有办法让它选择RR?
这里也是一个小样本