小编Sim*_*lin的帖子

AutoLayout多行UILabel切断了一些文字

我正在尝试学习自动布局,最后我想在发生这种情况时我正在抓住它.我正在玩原型细胞和标签.我想要一个

  • 标题,titleLbl- 图片中的蓝框
  • 金钱,moneyLbl- 图片中的绿色框
  • 字幕/描述,subTitleLbl- 图中的红色框

到目前为止我有这个:

iphone截图

我想要实现的是:

  • 绿色框应始终显示在1行上
  • 绿色框内的值应基于蓝色框居中
  • 蓝色框将占用剩余空间(对于2之间的水平约束为-8px),并在必要时显示在多行上
  • 红色框应位于下方,并根据需要显示尽可能多的行.

正如您所看到的,除了最后一行中的示例之外,这几乎都可以正常工作.我试图对此进行研究,从我可以收集的内容来看,这与内在的内容大小有关.网上有很多帖子推荐设置setPreferredMaxLayoutWidth,我已经在多个地方做了这个titleLbl并且没有任何效果.只有在硬编码时才能180得到结果,但它还在文本顶部/下方的其他蓝色框中添加了空格/填充,大大增加了红色/蓝色框之间的空间.

这是我的约束:

标题: 标题限制

钱: 金钱限制

字幕: 字幕约束

基于我与其他文本样本一起运行的测试,它看起来确实使用了故事板中显示的宽度,但任何纠正它的尝试都不起作用.

我创建了一个单元格的ivar并用它来创建单元格的高度:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    [sizingCellTitleSubMoney.titleLbl setText:[[tableViewData objectAtIndex:indexPath.row] objectForKey:@"title"]];
    [sizingCellTitleSubMoney.subtitleLbl setText:[[tableViewData objectAtIndex:indexPath.row] objectForKey:@"subtitle"]];
    [sizingCellTitleSubMoney.moneyLbl setText:[[tableViewData objectAtIndex:indexPath.row] objectForKey:@"cost"]];

    [sizingCellTitleSubMoney layoutIfNeeded];

    CGSize size = [sizingCellTitleSubMoney.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];
    return size.height+1;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    MATitleSubtitleMoneyTableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifierTitleSubTitleMoney];

    if(!cell)
    {
        cell = [[MATitleSubtitleMoneyTableViewCell alloc] init];
    } …
Run Code Online (Sandbox Code Playgroud)

objective-c uilabel ios uistoryboard autolayout

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

iOS企业应用程序存在奇怪问题

我负责为我正在为之工作的公司开发一个内部企业应用程序.我遇到了一个我无法弄清楚的巨大障碍.

该应用程序使用的音频单元,我有3个iPhone:

3gs - iOS 5.1.1
4 - iOS 5.1.1
5 - iOS 6
Run Code Online (Sandbox Code Playgroud)

使用配置文件我可以在这些设备上运行测试版本,一切正常,使用我自己的开发人员帐户和临时配置文件,它们都可以正常工作.构建它用于企业的无线分发,并且所有iOS 5.1.1设备都不起作用.

没有安装问题,应用程序加载正确但音频单元+我制作的循环缓冲区下地狱.看起来我正在获得大量的缓冲区溢出,但我无法理解为什么,它只能与企业帐户发生这种情况.我得到了所有正确的数据,数据正确地输入到音频中,如果我将循环缓冲区大小增加到非常高,我可以在这里使用正确的音频很短的时间然后它变得朦胧并且会短暂回来并且去再次朦胧

我想知道是否有人知道测试版本和企业版本之间的任何潜在差异.是否有可能有一些我没有遵循的最佳实践,因为我无法理解为什么我看到两者之间存在如此巨大的差异.

注意:只有设置更改我在2个版本之间进行代码签名,没有别的

objective-c core-audio ios ios-enterprise

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

Window.opener在IE8中未定义?

我无法弄清楚我在哪里出错.在其他浏览器中,它工作正常:

function main__pageeditor_new_body_SetUrl()
    {
        function getUrlParam(parentObject, paramName)
        {
          var reParam = new RegExp('(?:[\?&]|&)' + paramName + '=([^&]+)', 'i') ;            
          var match = parentObject.location.search.match(reParam) ;

           return (match && match.length > 1) ? match[1] : '' ;
        }

        var funcNum = getUrlParam(this, 'CKEditorFuncNum');

        this.opener.CKEDITOR.tools.callFunction(funcNum, arguments[0]);
}
Run Code Online (Sandbox Code Playgroud)

但在IE中你得到这个错误:

'this.opener.CKEDITOR' is null or not an object

为什么这不起作用?

javascript internet-explorer-8 ckeditor

5
推荐指数
1
解决办法
8197
查看次数

AutoLayout uitableviewcell在风景和iPad上基于人像iPhone计算高度

我正在学习/试验autolayout和UITableViewCell's.我几天前问了另一个问题,我回答了我自己的问题,我仍在使用相同的约束/代码.有关完整代码,请参阅此处:AutoLayout多行UILabel切断一些文本.

要在内部缩短它heightForRowAtIndexPath我使用自定义的实例UITableViewCell来计算行需要的高度.这在肖像中工作systemLayoutSizeFittingSize得很完美,但是当我切换到横向模式时,返回的单元格高度就像是纵向一样.我打印出了contentView标签和标签的框架,似乎没有任何更新.

结果是约束迫使标签增长,留下大量的空白.标签以正确的宽度显示,在景观中它们按照我的预期布局,如果我硬编码单元格的高度,它就能完美地工作.

它看起来像这样: 在此输入图像描述

硬编码后(我希望它看起来像): 在此输入图像描述

更糟糕的是,我在iPad上运行时得到了相同的结果,甚至是肖像模式,这意味着我得到了iPhone尺寸.从我所看到的情况来看,似乎systemLayoutSizeFittingSize没有方向或设备的概念.

我试过假装frame细胞应该是,尝试旋转细胞,调用layoutSubviews,重新加载tableView方向改变,似乎没有任何影响它.

我错过了什么基本的东西?

objective-c uitableview uiinterfaceorientation ios autolayout

5
推荐指数
1
解决办法
6086
查看次数

Images.xcassets打破了目标的规律

好的,所以我在这个上面拔出牙齿,我真诚地希望我犯了一个愚蠢的错误(已经有一些深夜了).

短篇小说,我们正在构建一个需要品牌化的产品,因为多个客户将共享90%相同的UI和代码,一些配置选项可以打开/关闭事物以及不同的颜色,字体和图像等.

除了.xcassets文件夹外,所有工作正常.我每个客户有1个,目前他们有相同的资产名称,有不同的图像.例如,每个.xcassets都有一个ic_settings,但每个内容都不同.

我已经检查了复制包资源构建阶段,对于每个目标,它实际上每个只有1个.xcasset文件夹.

<redacted image>

<redacted image>

当我运行应用程序时,它正确加载了appIcon(我必须将其重命名为appIcon- <target>,因为Xcode中的下拉显示了所有内容并且无法知道哪个是哪个).它还显示正确的包名称并启动screen.xib.

以下是图像本身.正如您所看到的,图像完全不同:

<redacted image> <redacted image>

但是,当我运行客户1和客户2.所有图像都是客户1.

我不知道这有多大可能,请告诉我:

  1. 我不是疯了
  2. 我犯了一些我无法看到的简单错误
  3. 这不是一个Xcode错误,并且不需要人类所见过的最精心策划的工作.可能重命名所有图像以附加目标名称:-(.

注意

我已经尝试过清理,构建,重置模拟器,删除派生数据等.在模拟器和真实设备上都有.

如果我将一个唯一的图像添加到其中一个文件夹,我就可以使用它了.直觉是Xcode正在合并文件夹????

解决方法

标记的答案是正确的,这是cocoapods.这是一个已知问题,目前最好的解决方法(我发现),是使用这个:https://github.com/CocoaPods/CocoaPods/issues/1546#issuecomment-61907975

xcode ios xcasset xcode6

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

客观C运行时如何查找已定义的消息?

我是客观C的新手,从C/C++背景来看,我正在努力去理解客观C的动态.

使用Objective-C编程第38页

请考虑以下代码:

id someObject = @"Hello, World!";
[someObject removeAllObjects];
Run Code Online (Sandbox Code Playgroud)

在这种情况下,someObject将指向一个NSString实例,但除了它是某种对象之外,编译器对该实例一无所知.所述removeAllObjects消息是由一些可可或可可触摸对象(如定义的NSMutableArray),从而,编译器不抱怨,即使该代码将在运行时生成异常,因为一个NSString对象无法removeAllObjects响应.

removeAllObjects消息由一些Cocoa或Cocoa Touch对象(例如NSMutableArray)定义,因此编译器不会抱怨.

这是否意味着,运行时实际上会查找所有实现的方法?如果是,它是否会影响性能?

请提出我的理解是否错误.

谢谢.

cocoa dynamic objective-c objective-c-runtime

0
推荐指数
1
解决办法
143
查看次数

如何在swift中使用模型类?

我想在我的iOS应用程序中使用模型类.我听说它的性能和开发速度越来越快.我尝试使用它但没有成功.有人可以帮忙吗?

ios swift

0
推荐指数
1
解决办法
3078
查看次数

InstantiateViewControllerWithIdentifier返回nil

我有授权窗口。当应用启动时,它是好的。我点击登录并转到下一个窗口。但是,当我点击“退出”并想返回到授权窗口时,我得到了零。在方法中,signinView控制器为nil。

在此处输入图片说明

ios appdelegate swift

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