iOS 关于改变frame的问题

我在瀑布流(collectionview)上方加了一个view(红色那个,adview),现在问题是我一划动,就会直接到最底部,而且滑不上去了了_adView = [[UIView alloc] initWithFrame:CGRectMake(0, 64, self.view.frame.size.height, 250)];
_adView.backgroundColor = [UIColor redColor];
[self.view addSubview:_adView];
self.collectionView.frame = CGRectMake(0, _adView.frame.origin.y+_adView.frame.size.height, self.view.frame.size.width, self.view.frame.size.height - 294);
[self.view addSubview:self.collectionView];
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGPoint point=scrollView.contentOffset;
//NSLog(@"%f,%f",point.x,point.y);
CGRect frame = [_adView frame];
frame.origin.y = _adView.frame.origin.y-point.y;
if (frame.origin.y > 64) {
frame.origin.y = 64;
}
_adView.frame = frame;
//NSLog(@"我勒个去%f",_adView.frame.origin.y);
frame = [scrollView frame];
frame.origin.y = _collectionView.frame.origin.y-point.y;
if (frame.origin.y > 314) {
frame.origin.y = 314;
}
frame.size.height = self.view.frame.size.height - frame.origin.y - 44;
scrollView.frame = frame;
NSLog(@"哈哈%f",_collectionView.frame.size.height + _adView.frame.origin.y);
NSLog(@"我去,我去,我去");
}
图片说明

ios
0

1个回答

图片说明

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
关于使用autolayout约束的界面添加子界面frame改变的问题
用storyboard约束一个界面,如tableview,在viewdidload方法里面打印该tableview的frame会发现并不是自己预期的一样,而在tableview添加子view的时候,子view的布局也会跟着改变。 原因:在viewdidload加载完成之前,autolayout约束的界面frame布局并没有完成,这个frame值都是以origin(0,0)开始 解决办法:在vi
Bug:iOS-改变view的frame后,设置transform,诡异画面
">http://stackoverflow.com/questions/19837512/rotate-uiimage-and-move/19862637#19862637> 最后终于在API Document里面找到这么一小段话 // animatable. do not use frame if view // is transformed since it will
在设置UIView及子视图的frame属性的注意事项
UIImageView *icon=[[UIImageView alloc]init]; icon.frame=CGRectMake(CSScreenW/2-59/2, 80, 59, 59);//在没有给宽度赋值之前不要使用width属性 icon.image=[UIImage imageNamed:@"txt"]; UILabel *label=[[UILabel alloc
xib修改frame无效
最近遇到一个问题,在某些机子上从xib中加载的视图怎么修改frame都不行,找了半天原来是该xib使用了autolayout布局页面,使用中如果想要frame布局就去掉autolayout,如果想用autolaout就去掉frame,直接修改constrainst
iOS用xib自定义view,修改不了frame的问题
转自:http://blog.sina.com.cn/s/blog_5971cdd00102wm5m.html 想要做一个图一所示的效果 由于我整体布局用的是tableview而不是collectionview,打算把四块商品展示弄成一个cell, 每一个商品展示用自定义View来写,for循环4次创建4个这样的View。如下图。 这个自定义View是用
更改frame的动画效果
转载自:http://hi.baidu.com/wwssttt/item/a74736506ead3adbd48bacd5 //开始动画。在此之前设定好要做动画效果的view的frame [UIView beginAnimations:nil context:nil];   // 设定动画出现方式 [
iOS开发问题----使用XIB文件布局获取并更改某控件frame的问题
由于开发中进场使用xib,或storyBoard来布局,有的时候需要获取某一控件的frame大小,或者在load完xib文件以后修改某控件的frame。这时需要用到的两个主要方法为 ;   //不添加这两个方法获得的尺寸会是xib里面未完成autolayout适配的尺寸,storyBoard同理,     [self.view setNeedsLayout];     [self.
【控件】UITableView自定义cell时,设置控件frame问题
当自定义cell时,往往会在cell上j
iOS-tableview的在UIViewController上Frame设置出现的显示问题
传统的直接创建UITableViewController,tableview的大小已经设置好了,这里要说的是在自定义控制器(UIViewController)上面覆盖一个cell列表。 不带导航栏: tableview在自定义控制器(继承UIViewController)上面frame大小一般设置和屏幕大小一样,tableview上下滚动没什么影响,可以正...
(iOS开发)关于tableView的frame设置的问题(上下移动64像素)
有时候发现tableView的frame的Y初始值有时候是0,有时候是64,为此曾困扰我,经查询,发现个Blog写的很好:http://blog.csdn.net/zhz459880251/article/details/49470461 但是也总结了一个方法来确保tableView的Y初始值是从64开始,代码如下: //添加此句,确保_tableView是用0,64 开始的( _ta
去除layer改变frame的动画效果
我的view有添加layer层,我在拖动tableview时需要动态改变这个view的大小,此时它的layer会出现动画效果  这与view的大小改变搭起来十分不协调。[CATransaction begin]; [CATransaction setDisableActions:YES]; _myLayer.frame = xxxxx; [CATransaction commit];...
在iOS 中改变tableView的frame让tableView回到顶部的方法
一定不要全部设置成0 [table scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:YES];
iOS 加载xib文件改变其frame
我使用xib可视化创建了一个自定义view,但是当我获取它并将它添加到我想要展示的视图上时,需要修改xib视图的大小,直接设置frame是不起作用的 解决: 在xib文件对应的 .m 文件中实现layoutSubviews或者drawRect:(CGRect)rect方法即可: 示例代码如下: - (void)layoutSubviews{ [super layoutSubvi...
重写setFrame方法,自己调整cell的frame
宏可以随意写 指定宽高 与头部 尾部 间距 #pragma mark 重写setFrame方法,自己调整cell的frame  - (void)setFrame:(CGRect)frame {     // 更改x、宽度     frame.origin.x = kTableBorderWidth;     frame.size.width -= kTableBorderWidt
xib 创建view并修改view的frame
1.创建一个继承自UIView的类,命名为FirstView. 2.创建xib文件,名字为FirstView.(注意这个时候名字不用手敲,可以点击类名自动补全名字)   3.修改xib文件中view类的名字。(网上有很多说要修改File’s owner的custom class,但是我只要File’s owner的custom class继承自FirstView,就会崩溃,所以干...
layoutSubviews在以下情况下会被调用,当需要改变子视图的frame时就需要用到了,我在使用的时候,Masonry改变子视图的布局居然不起用,用frame就可以了
layoutSubviews在以下情况下会被调用,当需要改变子视图的frame时就需要用到了,我在使用的时候,在layoutSubviews中使用Masonry改变子视图的布局居然不起用,用frame就起用了  1、init初始化不会触发layoutSubviews  2、addSubview会触发layoutSubviews  3、设置view的Frame会触发layoutSubviews
iOS之removeFromSuperview遇到的坑:第二次执行animateWithDuration动画,没有动画效果
直接先附上有问题的效果 101.175515.gif 原因: 我懒加载创建的view,而removeFromSuperview不是真正的移除view,所以view还存在,只是被隐藏了。因此第二次并不会再次懒加载创建view。 所以第二次没有动画是因为,第一次最后停留的位置BBB,和第二次的位置是一模一样的。所以第二次移动之前,利用代码AAA更...
ios xib和代码的frame布局 iOSXib布局后代码修改约束的值
转自溺水的小小鱼 如何修改autolayout 约束的值? 1 2 3 4 5 6 目前我已知的方法有5种 1.修改frame(有时候可能会不起作用,但可以做动画) 2.修改约束的float值 3.使用VisualFormat 语言 4.使用 constraintWithItem,按倍率改变   如  2x+1=Y
关于UILabel自适应位置和高度大小的问题
好多朋友都对ios中不能自定义UIlabel不满,希望UIlabel能像安卓中那样可以根据文字长度和大小来自适应长度它的frame。提出这样的需求基本是设计人员提出的。因为当我们将UILabel自适应后,就可以在它后面加个小标示了,小图片了一类的。例如新浪微博的会员标识。就是跟在你用户名后面随着你用户名的长度和随时改变的。好了。闲话不多说,上代码。 NSString *str = @"dfdsg
正确的设置UIView的frame
UITableviewCell在创建时初始化子view时,根据UITableviewCell的frame或者bounds的宽高来设置子view大小,总是不对,比如: imgView.frame = CGRectMake(0,0,cell.frame.size.height,cell.frame.size.height); 最终显示的时候宽高总是(320,44),这是cell在初始化的时候默认的
UIViewController view的加载情况,以及frame怎样改变问题
项目开发的时候遇到一个问题,有一个controller的view无论在viewdidload还是viewdidAppear里怎么也改不了它的大小。 改成1024*768,之后又会变成768*1024.  网上查了很多资料,决绝不了。 于是自己看了些官方文档,写了一个demo来测试。 算有了些眉目。 对controller的view加载过程又有了进一步的认识。 一、view的加载过程 c
IOS XIB中设置了约束后无法在代码中改变视图的frame
今天在修改代码的时候发现了一些问题,便做了一下优化先上图说事: 在这里的播放列表cell中是两个UILabel分别显示的是作品名和作者名。没修改之前,两个lab实在XIB中初始化和设置约束的,出来的效果就是无法动态的根据字符串长度来增加lab的宽度,或是做了一下设置后,虽然可以实现效果,但是在出现边界情况时就无法控制了(比如:作品名就超出了cell的宽度。。。。。)搜索了一会后发现有的解决方案是说
iOS:一种直接修改frame的某个属性的方法
转载自:  http://www.cnblogs.com/wengzilin/p/4359865.html 在iOS中view的frame属性使用地太频繁了,尤其是调UI的时候。我们知道,正常情况下我们无法对frame的某个属性(x,y,width,height等)进行单独修改,比如: 1 someView.frame.x = 10
iOS UIView 快速修改 frame,避免累赘的书写方式
我们修改frame中的某个值,需要进行繁琐的书写。而现在只需要这样就能完成:view.y = 100; 通过类别增加一些常见的变量,就可以达到目的
引入xib文件UIView改变frame无效
有时候我们不想用代码布局某个视图时,例如tableview的sectionHeaderView,我们往往会新建一个xib文件来实现布局,但是如果在xib中默认的大小为200*200,当我们把视图加载到UIViewController中,手动更改frame无效,多半原因是因为这个xib文件引用了autoLayout,解决方式就是选中xib中的UIView,关闭xib的autolayout,如下图所示...
监听某个控件的值改变(frame或者值)
获取webView的高度: [webView.scrollView addObserver:self forKeyPath:@"contentSize" options:NSKeyValueObservingOptionNew context:nil]; - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)
xib绘制的cell中动态改变cell子视图的frame
xib绘制的cell动态改变其中子试图的frame,这个场景是我在cell中,用view自定义了一个进度条,根据数据不同改变进度条即view的长度。我开始是写在updateCellWithModel中(自定义方法),在这个方法中改变frame的大小,但是很多进度条都没有生效,上下滑动之后才显示出来,能与百分比数字对应起来;后来我写在了layoutSubview中,仍然不能解决问题;然后我想到了dr
IOS开发之读取使用AutoLayout约束的控件Frame
开发环境 Swift2.3 XCode8.2 因为开发一个插件,需要动态的读取ScrollView的frame,但是,读取出来的数值一直是在storyboard中的大小(storyboard设计时的大小),因为设计的时候基于Iphone6s,宽度为375,所以,插件里读取的一直都是375,但是Iphone7Plus的实际宽度是414。而scrollView实际是添加了宽度约束等于superView的
iOS设备横屏时,frame和bounds的分别
iOS设备横屏时,视图的frame保持不变,但bounds会发生变化。
子控制器的view在父控制器的viewdidload方法中修改frame,有些系统不起作用
子控制器的view在父控制器的viewdidload方法中修改frame,有些系统不起作用所以,把子控制器view的frame的修改放到父控制器willLayoutSubviews方法中比较合适,而且不同版本的控制器都会起作用...
xib创建cell后想要代码改变cell中控件的frame
用xib创建cell后,想要改变cell中label得宽度,在layoutSubviews中实现了代码,结果cell点击后label才会变成是想要的frame, 发现是因为xib创建的cell autolayout 处在勾选状态,不能直接改变控件的frame,只能改变控件的约束,所以设置了label宽度的约束 ,拖拽到代码中然后改变label的约束,完成想要的frame
iOS开发——frame和bounds详解
在iOS的UI开发中,frame和bounds是两个非常容易搞混的概念,而很多开发者在实际项目中也很少去区分,因此会导致出现一些意想不到的问题。本篇博客以实际代码的方式来学习frame和bounds的使用。相关示例代码上传至 https://github.com/chenyufeng1991/FrameAndBounds ,欢迎大家下载查看。(1)先来查看一个界面中的容器self.view的fra
IOS 加载Xib 后 如何 动态修改xib中的控件frame
看看xib里view是不是设置了自动布局 use auto layout。取消掉就可以了。
ios自动布局的坑和与之有关的特殊坑
autoLayout自动布局在ios开发中有其不可比拟的优势,简化的代码,让后期维护变得更简单。这里不做autoLayout与autoResize的优势分析,但是在开发过程中如果不注意就会遇到autoLayout意想不到的坑。
oc 控件视图旋转以及frame的变化
有这样的的一个VIew 点击Button后进行45度的旋转。 两种方式都可以     NSLog(@"self.view2.frame - x - %f y -%f w -%f d -%f",self.view2.frame.origin.x,self.view2.frame.origin.y,self.view2.frame.size.width,self.view2.frame.
iOS storyboard 用代码修改frame问题
在iOS项目中使用storyboard布局界面,如果启用了Autolayout,sizeclass在viewDidLoad修改frame值是看不到效果的这与iOS的生命周期有关- (void)awakeFromNib;- (void)viewDidLoad;- (void)viewWillAppear:(BOOL)animated;- (void) viewDidAppear:(BOOL)anim...
iPhone开发--子view随着父view的frame大小而自动改变大小
当更改父view的frame时,在有些情况下子view的frame也发生了变化。这种情况并不都是自己想要的。解决方法如下:         [父view setAutoresizesSubviews:NO]; iOS自动帮我们做了让子视图自动适应父视图的方法,哈,但是自动适应也需要适可而止。
iOS 创建带有Xib文件ViewController时 如何正确设置frame?
iOS开发中如何在创建ViewController时一起创建了Xib文件,这时我们在ViewDidLoad设置frame时 会出现获取到的view.frame是错误的,原因是: 调用方法viewDidLoad中,所有的控件的frame都是在当前storyboard中状态,然后viewdidlayoutsubview,应该是这个方法。这个会根据你在界面上所设定的约束开始调整各个view,如果没有约
KVO监听UI控件的frame变化,kVO的简单使用,KVC的初步了解
由于ObjC主要基于Smalltalk进行设计,因此它有很多类似于Ruby、Python的动态特性,例如动态类型、动态加载、动态绑定等
用xib创建一个UIView(xib自定义view,修改不了frame的问题)
1.创建一个CustomerView的文件,commend+n,如图: 2.用xib创建一个view,命名为CustomerView,commend+n,如图: 3.修改xib中如下数据, 3.1 首先修改File’s Owner中的Class为:CustomerView,如图: 3.2 在修改xib 的 Simulated Metrics 的参数值,如图: 4....
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 关于大数据培训 关于云计算