您的位置:首页 > 移动开发 > IOS开发

iOS Xcode为Subview设置的约束条件在iOS 8 & Xcode 6中出现异常

2014-09-25 20:20 435 查看
问题重述:

为collectionview设计了一个hearderView,而这个headerView是一个自定义的myview,在这个自定义中有一个subview,它的约束条件是设置到superview的。在Xcode 6和iOS 8的组合下运行,上述的subview完全没有按照原来设计的约束,而是以从(0,0)为原点自己重置layout。但在iOS7 + Xcode 5/6 和iOS8 + Xcode 5 的组合中是正常的。

解决方案:

在初始化myview的时候,添加:

self.myView.translatesAutoresizingMaskIntoConstraints = YES;


- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
NSLog(@"initWithFrame");
[[NSBundle mainBundle] loadNibNamed:@"myView" owner:self options:nil];
self.myView.translatesAutoresizingMaskIntoConstraints = YES;
[self addSubview:self.myView];
}
return self;
}


问题分析:

translatesAutoresizingMaskIntoConstraints:

Returns a Boolean value that indicates whether the view’s autoresizing mask is translated into constraints for the constraint-based layout system.


Declaration

SWIFT

func translatesAutoresizingMaskIntoConstraints()
-> Bool


OBJECTIVE-C

- (BOOL)translatesAutoresizingMaskIntoConstraints



Return Value

YES
 if
the view’s autoresizing mask is translated into constraints for the constraint-based layout system, 
NO
otherwise.


Discussion

If this is value is 
YES
,
the view’s superview looks at the view’s autoresizing mask, produces constraints that implement it, and adds those constraints to itself (the superview).


Import Statement

import
UIKit



Availability

Available in iOS 6.0 and later.

参考链接:

https://developer.apple.com/library/IOs/documentation/UIKit/Reference/UIView_Class/index.html#//apple_ref/occ/instm/UIView/translatesAutoresizingMaskIntoConstraints

http://stackoverflow.com/questions/25817609/constraints-for-subview-not-working-in-ios-8-xcode-6-6a313-works-ios-7
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐