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

根据选择的UITextField滚动UICollectionViewCell Swift 3

问题:根据选择的UITextField滚动UICollectionViewCell Swift 3

答案: 在Swift 3中,可以通过以下步骤来实现根据选择的UITextField滚动UICollectionViewCell:

  1. 首先,确保你的UICollectionView已经设置了代理和数据源,并且已经正确地注册了UICollectionViewCell。
  2. 在你的UIViewController中,创建一个变量来存储当前选中的UITextField的引用。例如:
代码语言:txt
复制
var selectedTextField: UITextField?
  1. 在UICollectionViewDelegate中,实现以下方法来获取当前选中的UITextField的引用:
代码语言:txt
复制
func textFieldDidBeginEditing(_ textField: UITextField) {
    selectedTextField = textField
}
  1. 在UICollectionViewDelegate中,实现以下方法来处理滚动UICollectionViewCell的逻辑:
代码语言:txt
复制
func scrollViewDidScroll(_ scrollView: UIScrollView) {
    guard let selectedTextField = selectedTextField else {
        return
    }
    
    let visibleRect = CGRect(origin: collectionView.contentOffset, size: collectionView.bounds.size)
    let visibleCells = collectionView.visibleCells
    
    for cell in visibleCells {
        if let textField = cell.contentView.subviews.first(where: { $0 is UITextField }) as? UITextField {
            if textField == selectedTextField {
                let cellRect = collectionView.convert(cell.frame, to: collectionView.superview)
                let textFieldRect = textField.convert(textField.bounds, to: collectionView.superview)
                
                if !visibleRect.contains(cellRect) || !visibleRect.contains(textFieldRect) {
                    collectionView.scrollRectToVisible(cellRect, animated: true)
                }
                
                break
            }
        }
    }
}

在上述代码中,我们首先获取当前可见的UICollectionViewCell,并遍历每个cell以查找包含选中的UITextField的cell。然后,我们将cell的frame和UITextField的frame转换为与父视图相同的坐标系,并检查它们是否在可见区域内。如果不在可见区域内,我们使用scrollRectToVisible方法将cell滚动到可见区域。

请注意,上述代码假设每个UICollectionViewCell的内容视图中只有一个UITextField。如果有多个UITextField,你可能需要根据你的需求进行适当的修改。

这是一个基本的实现示例,你可以根据自己的需求进行进一步的定制和优化。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云数据库(TencentDB):https://cloud.tencent.com/product/cdb
  • 腾讯云人工智能(AI):https://cloud.tencent.com/product/ai
  • 腾讯云物联网(IoT):https://cloud.tencent.com/product/iot
  • 腾讯云区块链(Blockchain):https://cloud.tencent.com/product/baas
  • 腾讯云元宇宙(Metaverse):https://cloud.tencent.com/product/metaverse

请注意,以上链接仅供参考,具体的产品选择应根据实际需求和情况进行评估和决策。

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

相关·内容

再探Kotlin 跨平台——迁移Paging分页库至KMM

如果你之前从未使用过Paging库,可以参考许久之前我写两篇相关文章: 在View中使用Paging3分页库 在Compose中使用分页库 接下来我们就以multiplatform-paging-samples...在iosMain中仅定义了两个未使用方法,用于将类型导出到Object-C或Swift,代码如下所示。...}       }     }   } } iOS平台实现 AppDelegate.swift文件是程序启动入口文件,RepositoryCell类继承自UICollectionViewCell,并补充了...API中返回字段信息,UICollectionViewCell是iOS中集合视图,代码如下所示: class RepositoryCell: UICollectionViewCell {   @IBOutlet...extension RepositoriesViewController: UITextFieldDelegate {   func textFieldShouldReturn(_ textField: UITextField

1.2K20
  • 【IOS开发基础系列】UIAlertController专题

    一般来说,根据苹果官方制定《iOS 用户界面指南》,在拥有两个按钮对话框中,您应当将取消按钮放在左边。...根据苹果官方定义,“警示”样式按钮是用在可能会改变或删除数据操作上。因此用了红色醒目标识来警示用户。...以前我们只能在默认视图、文本框视图、密码框视图、登录和密码输入框视图中选择,现在我们可以向对话框中添加任意数目的UITextField对象,并且可以使用所有的UITextField特性。...        好了,现在对话框“好”按钮被冻结了,除非在“登录”文本框中输入3个以上字符: 上拉菜单         当需要给用户展示一系列选择时候(选择恐惧症患者杀手),上拉菜单就能够派上大用场了...在iOS 8中我们不再需要小心翼翼地计算出弹出框大小,UIAlertController将会根据设备大小自适应弹出框大小。并且在iPhone或者紧缩宽度设备中它将会返回nil值。

    53430

    自学Swift之路(二)UITableView自定义和实际利用

    6EDD4AC9-47E3-401F-91A4-2DA836439787.png Demo开始之前,我们想想应该会使用到屏幕宽高等一些常用值,在OC中,咱们可以使用PCH然后宏定义,然而在Swift中...=UITextField() var userTextF : UITextField?...ImageView和一个Label,虽然数据是死,但是在Swift中,另外一个类是可以直接访问另一个类中变量(如果没做任何保护的话),所以我们在配置cell时候是可以直接赋值,这里就不弄了,然后我们看创建表视图那一块...学了这么几天,我发现Swift还是比较容易入手,下篇文章我会用一个小项目,本人是做室内地图SDK,这次小项目是仿我OC写SDK Demo,使用Swift和OC混编,集成百度地图SDK和自己室内...在下篇文章中会讲讲,Swift项目已上github:https://github.com/qingmomo/Swift-die OC版demo在我们官网:http://www.innsmap.com

    2.3K90

    【IOS开发基础系列】UICollectionView专题

    首先UICollectionViewCell不存在各式各样默认style,这主要是由于展示对象性质决定,因为UICollectionView所用来展示对象相比UITableView来说要来得灵活...需要注意根据滚动方向不同,header和footer高和宽中只有一个会起作用。垂直滚动时section间宽度为该尺寸高,而水平滚动时为宽度起作用,如图。     ...2 实现 2.1 UICollectionView实例代码初始化化     NSUInteger collectionViewHeight = (_myCellVMArray.count + 2)/3...* kMyInfoCollectionCellHeight + 10;     //确定是水平滚动,还是垂直滚动     UICollectionViewFlowLayout *flowLayout=...UICollectionView委托回调配置,再初始化UICollectionViewCell

    73330

    iOS流布局UICollectionView系列七——三维中球型布局

    400) collectionViewLayout:layout];     collect.delegate=self;     collect.dataSource=self;     //这里设置偏移量是为了无缝进行循环滚动...,具体在上一篇博客中有解释     collect.contentOffset = CGPointMake(320, 400);     [collect registerClass:[UICollectionViewCell...在我们layout类中,将代码修改成如下: -(void)prepareLayout{     [super prepareLayout];      } //返回滚动范围增加了对x轴兼容 -(CGSize...2/itemCounts/2);     //根据偏移量 改变角度     //添加了一个x偏移量     float offsety = self.collectionView.contentOffset.y...滑动屏幕,这个圆球是可以进行滚动。 TIP:这里我们只平均分配了四个方向上布局,如果item更加小也更加多,我们可以分配到更多方向上,使球体更加充实。

    1.5K20

    Swift纯代码走进UICollectionView

    2.jpg Swift对于一门新iOS编程语言,他崛起是必然 我们这群老程序员们学习新技能也是必然 不接受新技能将被这大群体无情淘汰 So 我欣然接受这门看似不成熟语言 下面我们说说...Swift中比较常见控件UICollectionView 首先我们设置一个全局UICollectionView和一个数据源 var colltionView : UICollectionView...var dataArr = NSMutableArray() 然后设置UICollectionView3个代理 UICollectionViewDelegate,UICollectionViewDataSource...reloadData() } } } 接下来让我们看下cell里面究竟写了些什么玩意 class Home_Cell: UICollectionViewCell {...更多经验请点击 原文在:http://www.allluckly.cn/ 最终效果图如下 Swift_CollTionView.gif 推荐一款学习iOS开发app_____|___

    3.2K20
    领券