首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

无法再将锚点约束添加到TableCell的视图

对于给出的问答内容:无法再将锚点约束添加到TableCell的视图,下面是一个完善且全面的答案:

这个问题是由于在TableCell的视图上添加锚点约束导致的。在iOS开发中,TableCell是UITableView中的一行,用于显示数据的视图。在使用AutoLayout进行布局时,视图之间可以通过添加约束来定义它们之间的关系和位置。

然而,TableCell的视图结构与普通的视图结构略有不同,因为它是可重用的。这意味着当用户滚动UITableView时,TableCell会被重用来显示不同的数据。由于重用的特性,TableCell的视图会在多个位置重复出现,但是锚点约束无法处理这种情况。

解决这个问题的方法是,不要在TableCell的视图上直接添加锚点约束。而是通过重写UITableViewCell的layoutSubviews方法,在每次布局时动态计算并更新视图的约束。

以下是一个示例代码,展示了如何在UITableViewCell的子类中实现动态计算和更新约束:

代码语言:txt
复制
class CustomTableViewCell: UITableViewCell {
    var customView: UIView!

    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)
        setupCustomView()
    }

    required init?(coder: NSCoder) {
        super.init(coder: coder)
        setupCustomView()
    }

    private func setupCustomView() {
        customView = UIView()
        customView.translatesAutoresizingMaskIntoConstraints = false
        contentView.addSubview(customView)

        // 添加其他子视图和约束
        // ...

        // 更新约束
        setNeedsUpdateConstraints()
    }

    override func layoutSubviews() {
        super.layoutSubviews()

        // 动态计算和更新约束
        updateCustomViewConstraints()
    }

    private func updateCustomViewConstraints() {
        // 先移除旧的约束
        customView.removeConstraints(customView.constraints)

        // 添加新的约束
        let leadingConstraint = NSLayoutConstraint(item: customView, attribute: .leading, relatedBy: .equal, toItem: contentView, attribute: .leading, multiplier: 1.0, constant: 16.0)
        let trailingConstraint = NSLayoutConstraint(item: customView, attribute: .trailing, relatedBy: .equal, toItem: contentView, attribute: .trailing, multiplier: 1.0, constant: -16.0)
        let topConstraint = NSLayoutConstraint(item: customView, attribute: .top, relatedBy: .equal, toItem: contentView, attribute: .top, multiplier: 1.0, constant: 8.0)
        let bottomConstraint = NSLayoutConstraint(item: customView, attribute: .bottom, relatedBy: .equal, toItem: contentView, attribute: .bottom, multiplier: 1.0, constant: -8.0)

        contentView.addConstraints([leadingConstraint, trailingConstraint, topConstraint, bottomConstraint])
    }
}

这样,我们就解决了无法再将锚点约束添加到TableCell的视图的问题。通过动态计算和更新约束,我们可以确保TableCell的视图在重用时正确地布局。

补充说明:以上示例中的代码是基于Swift语言的,但是相应的概念和解决方法在其他编程语言中也是适用的。此外,腾讯云提供了丰富的云计算产品,如云服务器、云数据库、云存储等,可供开发者根据具体需求选择使用。详情请参考腾讯云官方文档:https://cloud.tencent.com/document/product

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS 二级菜单(UITableView实现)「建议收藏」

; 下面我说一下大体思路吧; 当选中cell时候看看这个cell有没有子菜单,如果没有很简单直接打开就行了; 如果有那么我们先将这些子菜单想办法添加到掌管父菜单数组中,然后生成一个位置数组(为了在...:(TableCell *) item;//删除视图处理函数 好了来写: 工程中没有其他类了,下面就是自动建好…….Controller.h了 #import @class...tablecell @property (nonatomic,strong) NSMutableArray * InsertArry;//中间处理过程数组,用于插入子视图 @property (nonatomic...,strong) NSMutableArray * DeleteArry;//中间处理过程数组,用于删除子视图 -(NSArray *) insertOperation:(TableCell *)item...;//插入视图处理函数 -(NSArray *) deleteOperation:(TableCell *) item;//删除视图处理函数 @end .m文件; #import "TPViewController.h

1.2K30
  • Android 自定义LayoutManager实现花式表格

    大佬写控件确实给我工作带来了极大方便,不过还是有些问题存在: 无法实现不规则表格 其核心是二层RecyclerView嵌套,如果只用一层RecyclerView将会带来性能提升 多个RecyclerView...TableView具有如下特点: 支持不规则表格 同时支持横向和纵向滚动 支持顶部和左侧悬浮 基于RecyclerView,所以RecyclerView自定义子视图、高效回收、子视图多样性这些特点它都有...为了确保表格每一个单元格长度和宽度都一样(子视图可以在横纵方向上占有多个单元格),宽和高都使用两种方式: 设置具体值,那么单元格宽或者高值就是具体 设置一行或者一列可以容纳单元格数量 所以宽高各有两种...<TableCell onCreateViewHolder(View root, int itemType) { // itemType是子视图布局文件 // 根据布局返回具体ViewHolder...mContent.setText(tableCell.getValue()); } } 第五步 | 重新测绘 如果TableView使用模式是Mode_A、Mode_C和Mode_D,需要再重新测量

    1.8K21

    提高效率 |ArcGIS Pro 中所有快捷键一网打尽

    O 随沿要素选项 在“随沿要素”模式下,更改文本对齐、放置约束和其他注记选项设置。 移动 用于“移动”工具键盘快捷键 键盘快捷键 操作 注释 Ctrl + 单击 重新定位。...将选择重新定位到单击位置。您可以放大要素,而不会在活动视图中看到当前位置。 Ctrl + 拖动 移动。 移动选择。...您可以放大要素,而不会在活动视图中看到当前位置。 Ctrl + 拖动 移动。 移动选择。 S 访问辅助。 打开和关闭辅助。打开时,点将位于指针位置。...您可以放大要素,而不会在活动视图中看到当前位置。 Ctrl + 拖动 移动。 移动选择。 S 访问辅助。 打开和关闭辅助。打开时,点将位于指针位置。...Ctrl + 拖动 移动贝塞尔控。 移动与另一个折重合时无法选择贝塞尔控。将鼠标悬停在控上,直到指针变为折,然后拖动该控。 Ctrl+H 将 z 值移动到指针。

    1.1K20

    IOS开发系列——Masonry手写Autolayout专题【整理,部分原创】

    autolayout添加函数 将所需约束添加到block中行了 [sv mas_makeConstraints:^(MASConstraintMaker *make) { //将sv居中(很容易理解吧...Autolayout不能同时存在两条针对于同一对象约束 否则会报错 mas_updateConstraints 针对上面的情况 会更新在block中出现约束 不会导致出现两个相同约束情况...mas_remakeConstraints 则会清除之前所有约束 仅保留最新约束 三种函数善加利用 就可以应对各种情况了 */ 其次 equalTo和 mas_equalTo区别在哪里呢?...单元格中无法使用Masonry 在TableCell中增加子控件时,无法正常使用Masonry来进行布局,可能是Cell重用引起。...因此进行子视图布局时,用前者容易挂机。

    77210

    代码实验室--带你一步步理解使用 ConstraintLayout

    在你想使用两个不同大小控件同时又想保持其中文字对齐时候很有帮助. 约束系统规则 除了以下情况外, 布局中控件可以连接到其它控件任意....不同轴上, 例如左边和上边不能相连....为了实现, 我们可以如下所示创建一个 TextView 上和 ImageView 底之间约束. 删除约束 使用这个 显示在布局中删除约束按钮以删除选中控件上 所有 约束....要删除单个约束, 点击设定了该约束 如果你打算删除布局中所有约束, 使用菜单图标. 下一步是创建 ImageView 顶于 Layout 顶部约束....使用推理创建约束 推理引擎辅助开发者在布局添加元素之间创建约束. 由推理创建约束依赖于添加到布局元素类型和他们尺寸.

    2.7K60

    UIKit Dynamics:抛出视图 —《Graphics & Animation系列三》

    我们用VCview作为参考视图,该视图定义了动画制作者坐标系统。 可以将动画添加到动画制作工具中,这样可以执行诸如附加视图,推动视图,使其受重力影响等等。...animator.removeAllBehaviors() // 创建一个UIAttachmentBehavior,它将图像视图附加到用户点击一个(碰巧是完全相同)。...稍后,更改定位使图像视图移动。 // 将附加到视图就像安装一个将连接到视图固定附件位置不可见杆。...当用户手指移动时,手势识别器调用此方法更新以跟随触摸。 另外,animator 会自动更新视图以跟随定位。 运行demo,拖动视图会出现如下效果: ?...注意视图不仅仅是在屏幕上进行旋转; 如果您在图像某个角落开始手势,则由于缘故,视图会随着手指移动而旋转。 但是,当完成拖动时,将视图恢复到原始位置会更好。

    1.1K20

    【一统江湖大前端(8)】matter.js 经典物理

    单独存在约束并没有什么实际意义,它需要关联两个物体,用来表示被关联物体之间约束关系,如果只关联了一个物体,则表示这个物体和固定坐标之间约束关系,固定坐标默认为(0,0),可以通过pointA或...pointB属性调整固定位置,《愤怒小鸟》中使用弹簧模型就是后一种单端固定形式。...我们只需要找到小鸟被弹射出去时经过弹弓横切面的位置,建立一个包含坐标值对象作为,然后再建立一个动态刚体B作为鼠标拉动弹簧时小鸟图案附着,最后在这两个对象之间创建约束就可以了,创建约束时需要声明弹性系数...弹射是在玩家使用鼠标向画面左下方拖动并松开鼠标后发生,我们可以依据小鸟附着位置进行弹射判定,当小鸟处于右上侧并超过一定距离时,将其判定为可发射,发射逻辑是生成一个新小鸟附着,将原约束...,视图模型可以是精灵表、位图或是自定义图形等任何Easel.js支持图形,建立后将它们依次添加到舞台实例stage中。

    3.3K30

    UIkit Dynamics 投掷效果

    引擎,将视图控制器视图作为参考视图来定义animator坐标系。...: 1、首先删除可能存在任何现有的动画行为。 2、接下来,您创建一个UIAttachmentBehavior将imageView附加到用户点击(恰好相同点)位置。...稍后,您将更改,这将导致imageView移动。 将连接到视图就像安装一个不可见杆,将连接到视图固定附件位置。...3、更新红色方块以指示,蓝色方块表示imageView中附加。当手势开始时,这些将是相同。 4、将此行为添加到animator,使其生效。...接下来你需要告诉本身跟随你手指.将下列代码替换defaultbreak语句 attachmentBehavior.anchorPoint = sender.location(in: view

    1.2K50

    CNCC2017中深度学习与跨媒体智能

    ),建立起一个贝叶斯推断模型 多视图生成式自编码器 除了视觉数据之外,还有其他模态数据,可以根据多个模态数据构建多视图生成时自编码器 珠算:基于贝叶斯推断深度生成模型库 任务 大数据中有许多不确定因素...图学习(速度+) 这是一种coarse to fine思路 利用数据点图,生成图,先采一部分有代表性数据(例如聚类中心)生成一个图模型,然后推理出其他图 图模型中需要建立表示矩阵(特征工程)...,邻接矩阵(度量学习),并加快相似度计算 高效图(性能速度+) 从数学上优化约束条件,使得优化问题复杂度大大降低 层次化图(速度++) 建立多层图,也就是对采样再采样 是线性增加...,也会增加得很快 对第一层采样做再采样,多层采样减少了点数目,从最少层逐层推理 标号预测器(速度+++) 优化对标号(打伪标签进行半监督学习) 对最小层接一个优化器进行标号预测...主动学习(样本选择) 是一种hard mining思路,选择更有用样本作为 减小标号误差损失 对比Google Expander Graph Learning平台:经典方法,并行运算,而图可以通过并行进一步提升速度

    1.4K60

    UIDynamic 物理引擎概念介绍UIDynamicAnimator(动画者)动力行为(UIDynamicBehavior)一、抽象类 UIDynamicBehavior二、UIGravityBeh

    view(至少两个动力项) UIAttachmentBehaviorTypeAnchor 连接到(只有一个动力项) 3.设置动力项吸附 @property (readwrite, nonatomic...) CGPoint anchorPoint; 4.视图连接距离,两个吸附点之间距离 @property (readwrite, nonatomic) CGFloat length; 5.只要设置了以下两个属性...1)创建一个吸附行为,让一个动力项中点和一个指定进行吸附,该初始化方法吸附行为类型是UIAttachmentBehaviorTypeAnchor - (instancetype)initWithItem...)initWithItem:(id )item1 attachedToItem:(id )item2; (3)创建一个吸附行为,让一个动力项某一和指定进行吸附...: 注意:不能直接修改子控件anchorPoint为0,0,因为以后使用center就会导致无法使用!!!

    3.2K80

    CNCC2017中深度学习与跨媒体智能

    ),建立起一个贝叶斯推断模型 多视图生成式自编码器 除了视觉数据之外,还有其他模态数据,可以根据多个模态数据构建多视图生成时自编码器 珠算:基于贝叶斯推断深度生成模型库 任务 大数据中有许多不确定因素...标号平滑 标号学习 图学习(速度+)  - 这是一种coarse to fine思路  - 利用数据点图,生成图,先采一部分有代表性数据(例如聚类中心)生成一个图模型,然后推理出其他图... - 图模型中需要建立表示矩阵(特征工程),邻接矩阵(度量学习),并加快相似度计算 高效图(性能速度+)  - 从数学上优化约束条件,使得优化问题复杂度大大降低 层次化图(速度++)  ...- 建立多层图,也就是对采样再采样  - 是线性增加,也会增加得很快 对第一层采样做再采样,多层采样减少了点数目,从最少层逐层推理 标号预测器(速度+++)  - 优化对标号...(打伪标签进行半监督学习)  - 对最小层接一个优化器进行标号预测 主动学习(样本选择)  - 是一种hard mining思路,选择更有用样本作为  - 减小标号误差损失 对比Google

    1.9K70

    UIView中frame属性内部实现

    视图位置和尺寸-图片来源于核心动画编程指南 (Anchor Point) 所谓就是用来确定视图在父视图位置而在视图内某个相对坐标值。...视图是一个矩形区域,里面有无数个,只要明确了视图内某个坐标值在父视图位置,那么这个视图位置就可以被确认,而这个被指定视图位置坐标点就是。...默认情况下系统将层内中心作为,这也就是视图center属性描述视图中心点在父视图位置原因。是CALayer中概念,而不是视图概念。...就如上面的视图属性和层属性对应关系可以看出来视图center属性对应是层position属性。其实后者更能表现位置这个概念,因为position表明是层点在父层中绝对位置。...虽然默认情况下是(0.5,0.5)而这个设定刚好和center属性所表明意思是一致,但是我们是可以改变

    1.5K30

    页面中元素点定位

    这是我参与「掘金日新计划 · 8 月更文挑战」第12天,点击查看活动详情 >> [点定位] 点击相应按钮,页面滚动到相应位置,目前我知道实现该功能方式有两种: 使用a标签定位 使用js模拟点定位...[使用a标签定位] 这是一种常见定位方式,它有两种实现方式: 通过href属性链接到指定元素id 2.另一种是添加一个 a 标签,再将 href 属性链接到这个 a 标签 name 属性 视图2 这种定位方式很简单,支持任意标签定位,但是a标签定位会改变路由hash,如果有相关路由会进行路由跳转 [使用js模拟点定位] 通过js获取元素scrollTop...值,使其滚动到指定位置,就能实现点定位效果,这里tab切换选项,用到是的element-uiel-tabs组件,具体实现如下: <!...= parseInt(e.index); //给定一个标识,事件不触发滚动 this.isScroll = false; this.isChange = false;

    2K70

    鸿蒙应用开发-初见:ArkUI

    比如上面卡片分左右两大部分选用合适容器组件进行页面描述针对拆解出来每个部分重复上面的两步,直到无法拆解只能使用基本组件描述为止比如上面的卡片可以进行如下拆分整体是一个Row容器,分为左右两大部分,...想了解更多Flutter布局原理可以查看 深入理解 Flutter 布局约束 SwiftUI中View布局原理参考SwiftUI中布局原理可以参考下图。...声明式布局几乎都是下面这个套路父视图给子视图一个布局约束(作为Root视图默认是充满屏幕,它给子视图约束就是屏幕大小)子视图渲染并将自身大小返回给父视图视图根据子视图大小和设定对齐方式计算要放置位置子视图布局也遵循以上三步进行递归...,覆盖Flex布局容器中alignItems配置相对布局(RelativeContainer)相对布局可以让子元素指定兄弟元素或父容器作为,基于做位置布局必须为RelativeContainer...及其子元素设置ID,用于指定信息。

    24410

    HarmonyOS 开发实践——相对布局 RelativeContainer

    视图主要分为上下两部分纵向排列,上部分是一张图片,下部分横向排列两个按钮。...我们可以结合 Column 和 Row 容器实现上面效果,但是今天主要讲下 RelativeContainer 相对布局容器,这有点类似于 iOS 开发中布局约束概念,实现方式都是以某个元素为进行相对布局...同方向上两个以上位置设置,但位置逆序时此子组件大小为 0,即不绘制。然后我们对图片组件设置偏移如.offset({ x: 0, y: -50 })即可实现我们想要效果。...在使用时要注意子元素相对位置关系,避免出现错位或遮挡情况。关于对齐位置,依照文档中所给示例图,可以比较直观感受。...比如某个组件在垂直方向设置了 top 和 bottom 约束,那么在实际开发过程中就不要再次设置该组件高度。

    2320

    30篇亮点论文、5大主题带你一览ECCV 2020研究趋势

    ,而且,如果不满足资源约束条件,则该模型将无法使用,这会限制模型实际应用。...但这也需要大量内存,且无法扩展到不同约束。最新一些方法,诸如S-Net和US-Net,在训练期间对子网络进行了采样,这样模型就可以在部署期间以不同宽度应用。...学习这类映射主要方法是基于图像(anchor image)、同类别的正图像和不同类别的负图像等三元组图像来定义损失函数。如果映射到负图像位置比正图像位置更近时,则对模型进行惩罚。...另一方面,使用最难负面示例进行优化,会在训练早期阶段产生糟糕局部最小值,因为在这种情况下,用余弦相似度(比如归一化特征向量之间积)测量时,-负相似度大于-正相似度。 ?...这样一来,网络便只专注于直接将hard negative样本推离

    79340
    领券