草庐IT

LayoutSubviews

全部标签

ios - 自定义布局 UITableViewHeaderFooterView

所以我只是尝试子类化UITableViewHeaderFooterView并通过覆盖-layoutSubviews以我想要的方式对齐标签。但是,当我调用super并更改标签的frame时,应用似乎陷入了无限的-layoutSubviews循环。我的代码是这样的:-(void)layoutSubviews{[superlayoutSubviews];self.textLabel.frame=CGRectMake(10.0,10.0,300.0,40.0);}关于如何解决这个问题有什么想法吗? 最佳答案 似乎试图修改background

ios - 自定义布局 UITableViewHeaderFooterView

所以我只是尝试子类化UITableViewHeaderFooterView并通过覆盖-layoutSubviews以我想要的方式对齐标签。但是,当我调用super并更改标签的frame时,应用似乎陷入了无限的-layoutSubviews循环。我的代码是这样的:-(void)layoutSubviews{[superlayoutSubviews];self.textLabel.frame=CGRectMake(10.0,10.0,300.0,40.0);}关于如何解决这个问题有什么想法吗? 最佳答案 似乎试图修改background

ios - 如何在 UIView 动画期间为 UIView 图层的子图层设置动画?

在View的UIView动画中,您可以通过将UIViewAnimationOptionLayoutSubviews包含在[UIViewanimateWithDuration:delay:delay:选项:动画:完成:]。但是,当它们不是某些View的支持层时,我找不到一种方法来为其布置子层设置动画;他们会跳到位以匹配View的新边界。由于我使用的是图层而不是View,所以我似乎必须使用CoreAnimation而不是UIView动画,但我不知道如何(以及何时)执行此操作以使图层动画与View匹配动画。这是我的基本问题。如果您想了解我想要完成的具体事情,请阅读更多内容。我通过向View层

ios - 如何在 UIView 动画期间为 UIView 图层的子图层设置动画?

在View的UIView动画中,您可以通过将UIViewAnimationOptionLayoutSubviews包含在[UIViewanimateWithDuration:delay:delay:选项:动画:完成:]。但是,当它们不是某些View的支持层时,我找不到一种方法来为其布置子层设置动画;他们会跳到位以匹配View的新边界。由于我使用的是图层而不是View,所以我似乎必须使用CoreAnimation而不是UIView动画,但我不知道如何(以及何时)执行此操作以使图层动画与View匹配动画。这是我的基本问题。如果您想了解我想要完成的具体事情,请阅读更多内容。我通过向View层

iphone - 在 layoutSubviews 中调用 setNeedsDisplay?

考虑在drawRect:中绘制的具有自定义背景的View。如果View改变大小,则需要重新绘制背景。这是个坏主意吗?-(void)layoutSubviews{[superlayoutSubviews];[selfsetNeedsDisplay];}如果是,考虑到我无法控制谁更改View大小,什么是更好的选择? 最佳答案 不要那样做,没必要。将View的contentMode设置为UIViewContentModeRedraw:UIViewContentModeRedrawRedisplaystheviewwhenthebounds

ios - 使用Autolayout时在layoutSubviews中添加subview是否正确

我编写的代码运行良好@interfaceSubView()@property(nonatomic,strong)UIButton*btn;@end@implementationSubView-(void)layoutSubviews{[superlayoutSubviews];[self.btnremoveFromSuperview];self.btn=[UIButtonbuttonWithType:UIButtonTypeCustom];self.btn.backgroundColor=[UIColorgreenColor];[self.btnsetTitle:@"btn"forSt

ios - iOS 5 中的 UIScrollView layoutSubviews 行为发生变化?

我正在开发一个组件,该组件是UIView的子类并且包含一个UIScrollView。滚动时,我注意到不同的行为取决于我使用的SDK。在iOS4上,layoutSubviews消息在ScrollView的superView(这是我的组件)上发送,但在iOS5上,消息似乎不再发送......查看iOS5发行说明和更新日志后,我没有发现任何提及此类更改的内容。我错过了什么吗? 最佳答案 在iOS5中,不会在scrollView的父View上调用layoutSubviews。但它是在iOS4中。如果你想在iOS5中有这个行为,在你的UISc

ios - UIView layoutSubviews委托(delegate)

我发现自己想要支持将layoutSubviews的责任委派给UIView。这是为了避免仅仅为了实现layoutSubviews方法而创建一个特定的子类。我怀疑我发现自己想要这种替代方案的原因可能是因为我错过了一些基本的UIKit设计考虑因素,或者?还是我应该继续创建自己的UIView子类以支持这种类型的布局委托(delegate)? 最佳答案 每当您需要自定义布局时,您都会想要创建一个子类,没有办法委托(delegate)。这也是唯一明智的做法-如果您在父View中包含一组View,该View应控制其subview布局以实现可维护性

ios - UINavigationBar 子类上的 “Auto Layout still required after executing -layoutSubviews"

我有一个UINavigationBar子类,我要向其添加一些UIView。我的UIView是根据我在-[UIViewupdateViewConstraints:]中定义的约束进行布局的NSDictionary*views,*metrics;//searchcontainerconstraints[selfaddSubview:self.searchContainer];self.searchContainer.translatesAutoresizingMaskIntoConstraints=NO;views=NSDictionaryOfVariableBindings(_search

ios - 执行 -layoutSubviews 后仍然需要自动布局。 UICollectionView的-layoutSubviews的实现需要调用super

我使用UICollectionView默认UICollectionViewFlowLayout.它适用于iOS8,但在iOS7.1上我得到Terminatingappduetouncaughtexception'NSInternalInconsistencyException',reason:'AutoLayoutstillrequiredafterexecuting-layoutSubviews.UICollectionView'simplementationof-layoutSubviewsneedstocallsuper我找到了这个“AutoLayoutstillrequired