在StoryBoard对UICollectionViewCell 进行Autolayout是遇到的Xcode6.01的BUG

使用Sb对UICollectionViewCell 的内容进行Autolayout约束时候,发现了一个Xcode6.01的BUG,就是你对UICollectionCell约束完了之后,在模拟器上现实的Label是居中,但是真机显示的确实不是居中,后来Google了一下,发现了问题,这是因为使用ios8 SDk编译出来的项目运行在iOS 7引起ContentView大小没有变导致的,解决办法之一:就是在你的定义的UICollectionViewCell 的子类重LayoutSubviews方法,在每次对Cell布局时候进行判对,查看self.contentView.frame.size是否和self.frame.size一致作为ContentView是否被自动布局了,然后在重新修改UICollectionViewCell 的frame.

- (void)layoutSubviews{
    [super layoutSubviews];
    BOOL contentViewIsAutoresized = CGSizeEqualToSize(self.frame.size, self.contentView.frame.size);

    if( !contentViewIsAutoresized) {
        CGRect contentViewFrame = self.contentView.frame;
        contentViewFrame.size = self.frame.size;
        self.contentView.frame = contentViewFrame;
    }
    NSLog(@"%@",NSStringFromCGRect(self.contentView.frame));
}

如果没有自定义的Cell类也可以在

- (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath加入以下代码

[cell.contentView setFrame:cell.bounds];
[cell.contentView setAutoresizingMask:UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth];

还有一种办法就是Xcode6.1.1选中storyboard 然后选择Show in file inspecter 内把ios8.0 and later 修改成ios7.1也能解决;

另外附上StackOverFlow的原来解决方法:http://stackoverflow.com/questions/24750158/autoresizing-issue-of-uicollectionviewcell-contentviews-frame-in-storyboard-pro

时间: 2024-12-26 00:07:15

在StoryBoard对UICollectionViewCell 进行Autolayout是遇到的Xcode6.01的BUG的相关文章

storyBoard方式ScrollView的AutoLayout

在使用storyboard和xib时,我们经常要用到ScrollView,还有自动 布局AutoLayout,但是ScrollView和AutoLayout 结合使用,相对来说有点复杂.根据实践,我说一下我的理解,在故事板或xib中,ScrollView是根据其下面的一个View的大小来确定 ContentSize的大小. 看一下效果 1. 创建一个项目,拖拽一个ScrollView到故事板中,如下图 2. 选中ScrollView,添加约束. 3. 拖拽一个View到ScrollView上,

Xcode6 storyboard new push segue 后的视图控制器没有navigation item bug.

手动切一下 老的push,再切回来,就会出有了,我想是一个bug. Xcode 6 Segue with UINavigationItem up vote0down votefavorite I've just created a Segue from a ViewController (which is embedded in a UINavigationController) to another ViewController. It seems like that the new Segu

iOS开发——Autolayout的实践与技巧

已经好久没有更新博客了,由于最近工作真的非常繁忙,所以就疏于分享了.今天我们来深入交流一下Autolayout的开发与使用.我在  http://blog.csdn.net/CHENYUFENG1991/article/details/47165751, http://blog.csdn.net/CHENYUFENG1991/article/details/47062527,两篇博客中对Autolayout进行了泛泛而谈,没有对深入的使用做进一步的讲解.今天我们就来弥补这方面的空缺.本文的dem

代码适配(Autolayout)

关于AutoLayout,最早从iOS6开始引入使用. 主要功能是使用约束,对视图进行相对布局,以适应不同屏尺的变换. 网上大量的资料都在介绍xib和storyboard,如何使用AutoLayout,说纯代码使用AutoLayout进行UI布局的越来越少.对于我这个习惯了代码UI布局的人,写个备忘: AutoLayout是什么? 使用一句Apple的官方定义的话 AutoLayout是一种基于约束的,描述性的布局系统. Auto Layout Is a Constraint-Based, De

【iOS开发】多屏尺的自动适配 AutoLayout (纯代码方式)

关于AutoLayout,最早从iOS6开始引入使用. 主要功能是使用约束,对视图进行相对布局,以适应不同屏尺的变换. 网上大量的资料都在介绍xib和storyboard,如何使用AutoLayout,说纯代码使用AutoLayout进行UI布局的越来越少.对于我这个习惯了代码UI布局的人,写个备忘: AutoLayout是什么? 使用一句Apple的官方定义的话 AutoLayout是一种基于约束的,描述性的布局系统. Auto Layout Is a Constraint-Based, De

iOS AutoLayout自动布局中级开发教程(2)-初识autolayout

通过storyboard,我们初识一下autolayout的表现形式: 看下图,使用storyboard创建的两个控件视图: 上图中的四个圆角框内的距离值,就是约束; 比如上图的第二个视图,他的 约束是:  距离 view左边,右边界的距离,这样就确定了 宽度和水平方向上的位置,还有距离上面(第一个)视图的距离,还有高,这样就确定了 视图的高度和y轴的位置;这样就可以在一个二维空间(屏幕)中唯一的确定这个视图的位置了; 但是,需要注意的,在添加距离上一个视图下边界的约束时,第一个视图的位置一定要

纯代码添加约束,autolayout 适配

IOS AutoLayout 代码约束—VFL 2014-12-22 22:19:43http://my.oschina.net/carson6931-Carson6931-点击数:2148 IOS 提供了两种添加约束的方法 第一种: +(instancetype)constraintWithItem:(id)view1 attribute:(NSLayoutAttribute)attr1 relatedBy:(NSLayoutRelation)relation toItem:(id)view2

Storyboards vs NIB vs Code 大辩论

前言 做iOS开发的童鞋都应该会纠结一个问题,那就是在做开发的时候是使用StoryBoard还是使用Nibs又或者是Code(纯代码流)呢?笔者也非常纠结这个问题,今天碰巧在raywenderlich上面看到了几个大神之间的撕逼,哦不,讨论之后,感觉收获良多,于是就将他们讨论的内容整理翻译了一下,如有不当之处,还请多多包涵,原视频请戳这里 http://t.cn/zRAb4NF 讨论 Ray Wenderlich Ok!现在我们都在线,感谢各位的到来,今天我们会有一个讨论关于iOS开发的讨论,是

UILabel顶部对齐解决方法(转载)

问题 我有一个UILabel高度最多能显示两行,如果里面内容只有一行,它是垂直居中的.怎么能让它顶端对齐呢? 回答 答案1:用sizeToFit改变UILabel的高度 nevan king,1969 赞 没法直接改变UILabel的垂直对齐方式,但是把 label 的 frame 高度改小也能实现相同的效果.为了看得清楚,我把 label 标为橘黄色了. 最简单的做法是: [myLabel sizeToFit]; sizeToFit 如果内容长度超过一行,把numberOfLines设成 0(