Tag: layoutsubviews

在layoutSubviews中调用setNeedsDisplay?

考虑在drawRect:绘制自定义背景的视图drawRect: 如果视图更改大小,则需要重绘背景。 这是一个坏主意吗? – (void) layoutSubviews { [super layoutSubviews]; [self setNeedsDisplay]; } 如果是这样,考虑到我无法控制谁改变了视图的大小,那么更好的select是什么?

首次出现时不能更改UITableViewCell中的UILabel的框架(使用Autolayout)

我有一个UITableView中包含UILabel的原型单元格。 我想dynamic地改变标签的大小(和单元格),这取决于标签中文字的大小。 我像这样在cellForRowAtIndexPath创build原型单元格: static NSString *CellIdentifier = @"ProgramDetailCell"; ProgramDetailCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; cell.descriptionLabel.text = self.program.subtitle; return cell; 然后我的ProgramDetailCell有以下实现: @implementation ProgramDetailCell – (void)layoutSubviews { [super layoutSubviews]; [self.descriptionLabel sizeToFit]; } @end 单元格第一次显示时, layoutSubviews被调用,但descriptionLabel不会被resize。 但是,如果我向下滚动表格并重新备份,则“重用”单元格将显示,并且标签的大小已正确调整! 为什么第一次显示单元格时不工作 – 我需要做些什么来修复它。 提前致谢!

我如何能UIImageView在UICollectionViewCell?

在我的UICollectionViewCell类中,我写了这个: – (void)layoutSubviews { [super layoutSubviews]; self.myImageView.layer.cornerRadius = CGRectGetHeight(self.myImageView.frame) / 2; self.myImageView.layer.masksToBounds = YES; } 但是这在所有情况下都不能正常工作,看起来像这样:

我如何设置自定义UIView的大小/位置,以便将其放置在自定义的UITableViewCell中?

我如何设置一个子视图的大小是以编程方式放置在UITableViewCell中? 我有一个自定义(subclassed)的UITableViewCell,其中的一部分单元格包含一些行(dynamic),这是作为一个自定义的UIView实现的。 这个想法是创build自定义视图(这是一个项目的行),然后当UITableViewCell命中layoutSubviews它将(a)设置自己重新定位和(b)循环,并调用“layoutSubviews”的每一行它用于行的自定义UIViews。 问题 – 我不知道如何正确设置自定义UIView行的大小/位置? 我如何,在自定义UIView layoutSubviews方法,确定其x,y,宽度,高度,所以我可以定位它? 我是否真的需要手动,在UITableCellView的layoutSubviews方法中,循环遍历所有行,并调用它们的自定义方法来传递它们的位置/宽度/高度,他们将需要在? 然后,当自定义的UIView行的layoutSubview方法被击中,它会知道要查找它的实例variables存储这些值来使用它们? 希望这是有道理的。 结构是: dynamic自定义UITableCellView(分类) 在heightForRowAtIndexPath中dynamic确定rowHeight 在layoutSubviews它包括循环子视图(自定义UIView我有),并调用layoutSubview每个这些 在自定义的UIView(它表示一行项目,例如UILabel) 在layoutSubview – 问题:如何设置这个子视图的框架的大小? 我认为框架的x,y应该是0,0? 对于宽度/高度,您如何获得应该设置的超视图区域的全尺寸? superview是否应该在layoutSubviews之前将这些信息传递给它?

在哪里创buildsubclassed uitableviewcell的自动布局约束?

我正在尝试为我创build的uitableviewcell子类使用autolayout,我将不胜感激一些关于什么方法放置布局约束创build代码的build议。 我一直在四处search,所有的信息都是在viewDidLoad方法中添加子视图之后添加约束的。 据我所知,viewDidLoad不是一个可用的viewcell子类的选项。 我正在使用接口生成器来创build自定义单元格,并在我的代码中dynamic分配它。 没有什么特别的…我subclass的uitableviewcell,所以我可以添加一个自定义的uiview到单元格。 再次,没有什么特别的地球震惊…我的困难来了,当我尝试定位我的自定义uiview相对于我添加到界面生成器单元格中的标签。 这是创build自定义uiview并将其添加到单元格的内容视图的代码: – (id)initWithCoder:(NSCoder *)decoder { if ((self = [super initWithCoder:decoder])) { [self initSelf]; } return self; } – (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { if ((self = [super initWithStyle:style reuseIdentifier:reuseIdentifier])) { [self initSelf]; } return self; } – (void) initSelf { // Initialization code _badgeLabel = @""; if (!_customBadge) { _customBadge […]

UITableView:如何在单击button时dynamic更改单元格高度?

我有一个UITableView,其中每个单元格都有一个button。 点击button时,单元格的高度将会改变。 当然,整个桌面的高度会根据它而改变。 在漫长的冲浪过程中,我找不到方法。 什么是实现这个优雅的解决scheme?

UIView / CALayer:在superview中转换触发器layoutSubviews

当改变UIView的一些属性时,它触发layoutSubviews中的layoutSubviews 。 在文档中找不到关于此的任何声明。 这些属性在superview和self中触发布局 帧 界限 这些属性仅在超视图中触发布局 转变 layer.transform 这些属性只触发自我布局 没有 这些属性不会触发任何布局 中央 layer.anchorPoint layer.position α 我觉得转换触发布局非常混乱,而且这个位置和anchorPoint不会。 示例代码 : https : //github.com/hfossli/LayoutSubviewsInconsistency 我想知道: 为什么我看到这种行为 如果这真的是不一致的,或者如果我误解了一些核心概念 每次我改变变形时如何避免superview到layoutSubviews 在文档和头文件中我找不到任何关于此的信息。 使用UIDynamics或类似的问题是显着的。