小编bru*_*tin的帖子

以编程方式在子类UIView的子视图上进行Autolayout

我已经将UIView子类化为一个自定义的groupView,我用它来以简单的方式为我的布局添加一些东西.这个groupView包含一个用作标题的UILabel和一个用它在背景颜色的CALayer上绘制roundRect的UIView.想想UITableView的部分.我通过删除UIView并将其类更改为我的子类,将此groupView添加到storyboard中.一切正常,我通过Xcode中的用户定义的运行时属性设置标题.一切都很棒,我在故事板上将UILabels添加到此视图中,并在运行时创建标题标签并进行圆整.

我的groupView结构:

  1. groupView:(UIView)clipToBounds:NO;
    • 标题:(UILabel)位于groupView上方.
    • contentView:(UIView)通过CALayer创建roundRect和color,应该与groupView的大小相同.

所以有什么问题?好吧,处理autolayout是一个痛苦的开始,但为了使这个子类UIView工作,我需要以编程方式设置contentView约束.我无法弄清楚这种自动布局ASCII格式字符串的语法.目前我有:

 _contentView = [[UIView alloc]initWithFrame:self.bounds];

    _contentView.layer.cornerRadius = 5.0f;
    _contentView.layer.masksToBounds=YES;
    _contentView.backgroundColor=_backgroundColor;
    _contentView.layer.borderWidth=_borderWidth;
    _contentView.layer.borderColor=_borderColor.CGColor;
    [self insertSubview:_contentView atIndex:0];
    NSDictionary *viewsDictionary = NSDictionaryOfVariableBindings(self,_contentView);
    NSArray *constraints = [NSLayoutConstraint constraintsWithVisualFormat:@"[self]-0-[_contentView]-0-[self]" options:0 metrics:nil views:viewsDictionary];

    for (NSLayoutConstraint *constraint in constraints) {
        [_contentView addConstraint:constraint];
    }
Run Code Online (Sandbox Code Playgroud)

哪个崩溃:*由于未捕获的异常'NSGenericException'终止应用程序,原因:'无法在视图上安装约束.约束是否引用了视图子树之外的内容?那是违法的.约束:查看:>'

我先尝试过这个但它仍然没有用:

    NSDictionary *viewsDictionary = NSDictionaryOfVariableBindings(_contentView);
    NSArray *constraints = [NSLayoutConstraint constraintsWithVisualFormat:@"|-0-[_contentView]-0-|" options:0 metrics:nil views:viewsDictionary];
Run Code Online (Sandbox Code Playgroud)

哪个崩溃:*由于未捕获的异常'NSGenericException'终止应用程序,原因:'无法在视图上安装约束.约束是否引用了视图子树之外的内容?那是违法的.约束:查看:>'

RANT:不知怎的,这个AutoLayout假设是为了节省我们的工作,但我不知道这些好处如何影响现在的开销.为什么他们从使用引用和方法,甚至键入defs到这个古老的格式字符串?它会更容易:[_ contentView约束:NSLayoutFormatAlignLeading toView:self withDistance:0.0f]; 或类似的东西?在这一点上,我更愿意处理弹簧和支柱.

任何帮助理解,或向我展示将contentView约束到自我大小的语法将是有帮助的.

iphone ios6 nslayoutconstraint

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

PHP mcrypt到ColdFusion解密

我在PHP应用程序中工作,我们有一个特定的字符串,我们需要在存储到数据库之前加密.我可以在PHP中使用带有密钥和iv的mcrypt没有问题.目前我正在尝试使用blowfish因为我认为在ColdFusion中解密它会是最灵活的.我遇到的问题是看起来ColdFusion似乎不想使用密钥或iv加密.ColdFusion希望你使用generateSecretKey()并使用其他方法来创建iv.

我似乎无法做的是让两人沟通.我首先尝试在coldFusion中加密并使用它生成的密钥,然后在PHP中使用它,但结果并非如此.我知道我必须遗漏一些东西,但我无法确定它可能是什么.

<?php
$securedString = mcrypt_encrypt ('MCRYPT_BLOWFISH' , 'THISISMYKEYTHATISVERYLONG32CHARS' , "This is the string I need encrypted' , MCRYPT_MODE_CBC , '12345678');
echo base64_encode($securedString);
?>
Run Code Online (Sandbox Code Playgroud)

那么等效的ColdFusion解密调用会是什么样的呢?

顺便说一句:如果Blowfish不是理想的算法,只要ColdFusion和PHP都可以使用它并且它是安全的,请随意建议另一个.

谢谢,布鲁斯

php coldfusion mcrypt coldfusion-8

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