我有一个更改文本的标签,我希望它是一个固定长度的单行.每当文本比标签长度长时,我希望它在最后显示与"..."匹配的任何内容.例如:
Some Very Long Text
Run Code Online (Sandbox Code Playgroud)
看起来像:
Some Very Lon...
Run Code Online (Sandbox Code Playgroud)
有谁知道这是怎么做到的吗?
我在Xcode 6.1上启动了一个新的单一视图项目,
转到我的目标并将Device Family设置为Universal和Deployment目标为7.1
在故事板中,我在Size类中放置了一个红色标签,Regular Width | Any Height
在Size Class中放置了一个蓝色标签Compact Width | Any Height
根据文档,我在ipad上运行时会看到一个红色标签,在iphone上运行时会看到蓝色,到目前为止,这在模拟器和实际设备上均可正常工作.
现在我回到目标并将Device Family设置为IPad,再次运行应用程序:
模拟器上的IPad 2(7.1) - 红色标签
IPad 2(7.1)(真实设备) - 蓝色标签?!?!?
IPad 2(8.1)(真实设备) - 红色标签
同样适用于IPad Air/IPad mini以及IOS 7.1的所有其他IPad我都遇到过
基本上我在通用故事板上看到这一点,当在ios 7.1中为IPad设置设备系列时,故事板被认为是紧凑的尺寸.我必须与IOS 7.1兼容,我的应用程序将首先仅针对IPad发布.有没有人知道如何解决它?
根据Apple文档:对于支持早于iOS 8的iOS版本的应用程序,大多数大小类都是向后兼容的.大小类只要向后兼容即可
该应用程序使用Xcode版本6或更高版本构建
该应用程序的部署目标早于iOS 8
大小类在storyboard或xib中指定
高度分量的值不紧凑
所有这些都适用于我的例子.
我正在使用 puppeteer 的 page.metrics() 它调用 DevTools 协议Performance.getMetrics() 这里是返回数据的示例:
{
Timestamp: 672.244221,
Documents: 3,
Frames: 2,
JSEventListeners: 2,
Nodes: 4116,
LayoutCount: 3,
RecalcStyleCount: 2,
LayoutDuration: 0.136179,
RecalcStyleDuration: 0.027681,
ScriptDuration: 0.188817,
TaskDuration: 0.563811,
JSHeapUsedSize: 2959520,
JSHeapTotalSize: 5132288
}
Run Code Online (Sandbox Code Playgroud)
我能找到的关于这些数字的唯一文档是在puppeteer 的文档中 ,基本上是这样的:
- 时间戳 获取指标样本时的时间戳。
- 文档 页面中的文档数。
- Frames 页面中的帧数。
- JSEventListeners 页面中的事件数。
- Nodes 页面中 DOM 节点的数量。
- LayoutCount 完整或部分页面布局的总数。
- RecalcStyleCount 页面样式重新计算的总数。
- LayoutDuration 所有页面布局的组合持续时间。
- RecalcStyleDuration 所有页面样式重新计算的组合持续时间。
- ScriptDuration JavaScript 执行的组合持续时间。
- TaskDuration 浏览器执行的所有任务的总持续时间。
- JSHeapUsedSize 使用的 JavaScript 堆大小。
- JSHeapTotalSize 总 JavaScript 堆大小。
我真的很想获得有关这些数字的更多详细信息,特别是回答以下问题:
TaskDuration 明显大于 ScriptDuration、LayoutDuration 和 RecalculateStyleDuration …
在xcode中调试C++代码,有没有办法查看std :: shared_ptr的内容?
如果我看一下"观察"窗口,我只能看到__ptr =(element_type*)0xa66945c
并在即时窗口中写入'po myPointer'也只打印内存地址.
我也试过'查看记忆的'__ptr_"'和'查看记忆的内容'*__ ptr_"'但它只能让我看到
原始内存,没有实际的可读文本
任何人都可以建议一种方法来查看我有一个指针的对象?
我已经使用复合模式为几个单独的平台设计了遥测记录器
public interface ILogger
{
void Log();
}
public class A : ILogger
{
public void Log(...);
}
public class B : ILogger
{
public void Log(...);
}
public class Many : ILogger
{
private readonly List<ILogger> m_loggers;
public Many(IEnumerable<ILogger> loggers)
{
m_loggers = loggers.ToList();
}
public void Log()
{
m_loggers.ForEach(c => c.Log());
}
}
Run Code Online (Sandbox Code Playgroud)
现在我希望能够从Windsor容器中获取"Many"的实例,但遇到了一些问题:
如果所有ILoggers都在容器中,我怎样才能确保我得到"很多"实现而不是"A"或"B"?
我尝试过这个示例
Castle Windsor:如何将所有接口实现注入ctor?
并使用 container.Kernel.Resolver.AddSubResolver(new
CollectionResolver(container.Kernel));
注册具有IEnumerable依赖性的类,但如果该类也实现IComponent它不会创建循环依赖?
我正在尝试甚至可能吗?
以下代码
const run = async() => {
try {
const p = Promise.reject()
p.catch(() => console.log('exception caught'))
await p
console.log('flow completed')
} catch {
console.log('flow interrupted')
}
}
run()Run Code Online (Sandbox Code Playgroud)
打印以下输出:
exception caught
flow interrupted
Run Code Online (Sandbox Code Playgroud)
意思是,即使 catch 方法正在运行,也没有捕获异常
现在,如果我进行这个看似无关的编辑并在承诺定义之后立即链接捕获
exception caught
flow interrupted
Run Code Online (Sandbox Code Playgroud)
输出变成
exception caught
flow completed
Run Code Online (Sandbox Code Playgroud)
我尝试定义承诺,就像
const p = new Promise((resolve, reject) => {setTimeout(reject, 100)})
认为如果在承诺拒绝之前设置捕获可能很重要,但它没有改变任何东西
我在节点 12.16.1 上运行这些测试
谁能解释为什么异常没有在第一个代码示例中被捕获,而是在第二个代码示例中被捕获?
.net ×1
c# ×1
c++ ×1
composite ×1
debugging ×1
es6-promise ×1
ios ×1
javascript ×1
label ×1
objective-c ×1
promise ×1
puppeteer ×1
size-classes ×1
storyboard ×1
winforms ×1
xcode ×1