首页 > 其他分享 >iOS tableView中嵌套collectionView如何动态计算高度

iOS tableView中嵌套collectionView如何动态计算高度

时间:2023-07-17 16:45:28浏览次数:35  
标签:iOS tableView withHorizontalFittingPriority collectionView UILayoutPriority vert

tableview中嵌套collectionview的使用场景经常见,一般都是collectionview高度写死,那么如何在tableview高度自适应的情况下,collectionview的高度还能动态算准,可以通过以下方式,
在cell中重写-(CGSize)systemLayoutSizeFittingSize:(CGSize)targetSize withHorizontalFittingPriority:(UILayoutPriority)horizontalFittingPriority verticalFittingPriority:(UILayoutPriority)verticalFittingPriority方法

-(CGSize)systemLayoutSizeFittingSize:(CGSize)targetSize withHorizontalFittingPriority:(UILayoutPriority)horizontalFittingPriority verticalFittingPriority:(UILayoutPriority)verticalFittingPriority {
    CGSize size = [super systemLayoutSizeFittingSize:targetSize withHorizontalFittingPriority:horizontalFittingPriority verticalFittingPriority:verticalFittingPriority];
    [self.collectionView layoutIfNeeded]; 
    CGFloat height = self.collectionView.collectionViewLayout.collectionViewContentSize.height;;
    return CGSizeMake(size.width, height);
}

如果是tableview中嵌套tableview,需要动态计算高度的,可在cell中重写该方法:

-(CGSize)systemLayoutSizeFittingSize:(CGSize)targetSize withHorizontalFittingPriority:(UILayoutPriority)horizontalFittingPriority verticalFittingPriority:(UILayoutPriority)verticalFittingPriority{
    CGSize size = [super systemLayoutSizeFittingSize:targetSize withHorizontalFittingPriority:horizontalFittingPriority verticalFittingPriority:verticalFittingPriority];
    [self.tableView layoutIfNeeded];
    CGFloat heigth = self.tableView.contentSize.height;
    return CGSizeMake(size.width, heigth);
}

标签:iOS,tableView,withHorizontalFittingPriority,collectionView,UILayoutPriority,vert
From: https://www.cnblogs.com/qqcc1388/p/17560519.html

相关文章

  • iOS 苹果授权登录(Sign in with Apple)系列之uniapp篇
    官方网址https://uniapp.dcloud.net.cn/tutorial/app-oauth.html# 代码集成1、在 template 添加以下代码, 苹果授权登录(SigninwithApple)是 iOS13 才有的,做下系统版本判断<template><viewclass="content"><!--苹果登录--><viewclass="......
  • modern standby BIOS
    什么是ModernStandbyBIOS简介ModernStandbyBIOS是一种新一代的计算机BIOS技术,它基于微软的ModernStandby技术。传统的ACPI技术使计算机进入睡眠模式时,CPU会停止运行,只有少量硬件设备处于待机状态。而ModernStandby技术通过使系统保持一定程度的活动,提供更快的从睡眠模式唤......
  • IOS开发-OC UINavigationController使用
    1.什么是UINavigationControllerUINavigationController是iOS中的一个重要的导航控制器类,它可以用来管理页面之间的导航跳转。UINavigationController的主要特征包括:-管理导航栈(navigationstack),实现页面的推入和弹出。-包含一个navigationbar,显示导航项和标题。-可......
  • IOS开发-实现图片缓存优化性能
    在Objective-C中,可以这么实现图片的本地缓存:1.创建一个用于存储图片的缓存文件夹;2.根据图片URL构建缓存文件名;3.检查缓存路径是否存在,如果存在直接读取缓存图片;4.不存在则从网络下载图片;5.保存图片到缓存,以名称cacheFilename;6.以后再加载同一个URL的图片,就直接从......
  • react axios跨域解决方案
    跨域问题及其解决方案在Web开发过程中,由于同源策略的限制,浏览器会阻止发送跨域请求,这给前端开发带来了一定的挑战。而在使用React框架进行开发时,我们经常使用Axios库来进行数据通信,因此需要解决Axios跨域问题。本文将为您介绍React中使用Axios解决跨域问题的方案,并提供相应的代码......
  • vue项目ios真机测试
    如何实现“Vue项目iOS真机测试”简介在开发Vue项目时,我们通常需要进行测试来确保项目在不同平台上的兼容性和稳定性。本文将为刚入行的开发者介绍如何在iOS设备上进行Vue项目的真机测试。流程下面是实现Vue项目iOS真机测试的整体流程:步骤说明步骤一环境准备步骤......
  • vue3axios怎么用
    Vue3中使用axios在Vue3中,可以使用axios来进行网络请求。axios是一个基于Promise的HTTP客户端,可以用于浏览器和Node.js,非常便捷和强大。安装axios在开始之前,首先需要安装axios。可以通过npm或者yarn来安装:npminstallaxios引入axios在Vue3中,可以使用import来引入axios:impor......
  • vue3axiosjwt拦截器
    实现Vue3axiosjwt拦截器介绍在Vue3项目中使用axios进行网络请求时,我们经常需要在每次请求中添加JWT令牌(JSONWebToken)以进行身份验证。为了简化这个过程,我们可以使用axios的拦截器来实现自动添加JWT令牌的功能。本文将指导你如何使用Vue3、axios和JWT来实现拦截器。整体流程......
  • vue+axios实现输入框多条件搜索功能
    Vue+Axios实现输入框多条件搜索功能在现代的Web开发中,搜索功能是一个非常重要的特性。用户们希望能够根据自己的需求输入多个条件来筛选出所需要的数据。Vue.js是一个流行的JavaScript框架,可以轻松地实现这样的功能。而Axios是一个基于Promise的HTTP库,可以方便地与后端进行数据......
  • 解决vue axios跨域 Request Method: OPTIONS问题(预检请求)
    解决VueAxios跨域问题(预检请求)一、问题描述在前后端分离开发中,前端通过Vue框架发起Ajax请求时,如果请求的URL与前端所在的域名不一致,就会触发浏览器的跨域机制。其中一种常见的跨域问题是"RequestMethod:OPTIONS",也称为预检请求。在本文中,我们将说明如何解决这个问题。二、......