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

iOS 11 TableView to UIView导航栏下方的奇数空格

在iOS 11中,将TableView嵌套在UIView中,并希望在导航栏下方添加奇数个空格的话,可以通过以下步骤实现:

  1. 创建一个UIViewController,并在其视图层次结构中添加一个UIView作为容器视图。
  2. 在容器视图中添加一个UITableView作为子视图。
  3. 设置UITableView的代理和数据源,以便加载和显示数据。
  4. 在UIViewController中,通过编程方式创建一个UIBarButtonItem,并将其添加到导航栏的右侧。
  5. 在UIBarButtonItem的点击事件处理方法中,计算并添加奇数个空格到UITableView的底部。

以下是一个示例代码,演示如何实现上述功能:

代码语言:txt
复制
import UIKit

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
    
    @IBOutlet weak var containerView: UIView!
    @IBOutlet weak var tableView: UITableView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        tableView.delegate = self
        tableView.dataSource = self
        
        // 添加UITableView到容器视图
        containerView.addSubview(tableView)
        
        // 创建并添加UIBarButtonItem到导航栏
        let addSpacesButton = UIBarButtonItem(title: "Add Spaces", style: .plain, target: self, action: #selector(addSpacesButtonTapped))
        navigationItem.rightBarButtonItem = addSpacesButton
    }
    
    // 点击UIBarButtonItem时的处理方法
    @objc func addSpacesButtonTapped() {
        let numberOfSpaces = 5 // 奇数个空格
        
        var spaces = ""
        for _ in 0..<numberOfSpaces {
            spaces += " "
        }
        
        // 在UITableView的底部添加奇数个空格
        tableView.tableFooterView = UIView(frame: CGRect(x: 0, y: 0, width: tableView.frame.width, height: 30))
        let label = UILabel(frame: tableView.tableFooterView!.bounds)
        label.text = spaces
        label.textAlignment = .center
        tableView.tableFooterView!.addSubview(label)
    }
    
    // UITableViewDataSource方法
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 10 // 假设有10行数据
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
        cell.textLabel?.text = "Row \(indexPath.row + 1)"
        return cell
    }
    
    // UITableViewDelegate方法
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        tableView.deselectRow(at: indexPath, animated: true)
    }
}

请注意,以上代码仅为示例,实际使用时可能需要根据具体需求进行适当修改。

关于iOS开发、UITableView、UIView、导航栏等相关概念和知识,您可以参考腾讯云的开发者文档和相关产品:

希望以上信息能对您有所帮助!

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

相关·内容

  • iOS头部渐变的表格视图设计 原

    iOS头部渐变的表格视图设计         今天再来给大家带来一个开发中常用到的视图控制器,在很多应用中,可能都会遇到这样的一个需求:表视图控制器最上方有一个头图控件,当表格视图滑动在顶部时,导航栏透明...,当表格视图逐渐向下滑动时,导航栏渐渐出现,并且在滑动期间,头图会展示相关的渐变动画效果。... *      2.这个视图控制器如果是被present出来的 则不会出现假导航栏  *      3.这个视图控制器中自带一个TableView 设置TableView的头图不会影响原动画效果  *...; /**  *  设置动画头图图片  */ @property(nonatomic,strong)UIView * animatedHeaderView; /**  *  设置TableView的头视图...,例如在导航结构中被push出来或者通过模态跳转被present出来,我在这个控件的实现时做了兼容,实际上无论有无导航,控件内部都没有使用系统的导航栏,而是模拟实现了一个自定义的导航栏来与系统的导航无缝衔接

    1.2K20

    你可能需要为你的 APP 适配 iOS 11

    导语:iOS 11 为整个生态系统的 UI 元素带来了一种更加大胆、动态的新风格。...本文介绍iOS11中在UI方面做了哪些更新,有些更新可以为用户提供更加完美的体验,但也有的可能会给目前的APP带来异常bug 前言 前几天发现在做的APP在 iOS11 系统上动画有异常,在其他系统的设备上都是正常的...本文内容包括:集成了搜索的大标题栏、横向选项卡栏、Margins 和 Insets以及 UIScrollView和UITableView 的更新和功能更强大的滑动操作。 一....iOS11下不想使用Self-Sizing的话,可以通过以下方式关闭:(前言中提到的问题也是通过这种方式解决的) self.tableView.estimatedRowHeight = 0; self.tableView.estimatedSectionHeaderHeight...从iOS 11开始有了一些改变,首先是可以给这些按钮添加图片了,然后是如果实现了以下两个iOS 11新增的代理方法,将会取代(tableView: editActionsForRowAtIndexPath

    1.7K60

    IOS学习——iphone X的适配

    iPhone X的变化和特点都有所介绍,大家可以参考一下,下面我主要列举一下跟界面相关的新特性,jut8大家也可以参考下面的一些博客的分析链接: 导航栏变化,大号字体的变化,iOS 11之前的导航栏高度是...自定义的导航栏的返回按钮右移明显     iOS 11改动相当大的就是导航栏的部分,除了新加入了largeTitles和searchController两个新特性,还对导航栏的图层结构进行了调整,在原来的已经复杂的不要的图层中又新增了新的图层...ExtendedLayoutIncludesOpaqueBars参数的含义是不透明的导航栏条下是否可以扩展,默认是NO,如果设为YES,则表示可以扩展,即可能会受到导航栏的影响,我们知道在iOS 11中导航栏的变化非常大...,加上导航栏的高度的变化和safeArea的概念的提出,使得UITableview在iOS 11的布局上会出现一些偏差,因为涉及到项目信息,所以就不放图了。...解决方案如下 1 //ios11 tableview 适配 2 if (@available(iOS 11.0, *)) { 3 if ([self.tableView respondsToSelector

    1.5K60

    开源项目——『看知乎』iOS 版

    圆角 label.png 因为我把这几个属性扩展到了 UIView 上,所以所有继承自 UIView 的控件都可以在 Storyboard 上方便的设置这几个属性了。...实现简书式的用户个人页面 我的用户详情页面是模仿简书写的,总的来说就是头像会随页面上滑缩小(初始状态是半个头像在导航栏中,最后整个头像都到导航栏中),然后菜单项会停留在导航栏下方,点击菜单项,下面的 Cell...于是 Controller 成了 MVC 的中心,这种思想也是 iOS 开发中的主流思想,斯坦福 iOS 公开课上白胡子老头放过一张解释 MVC 的图: ?...于是有人提出在 iOS 中使用 MVVM,不过 Cocoa Touch 跟 WPF 是不一样的,所以大多数时候在 iOS 中的 MVVM 其实是 M-VM-V-C,也就是在 View 和 Model 之间加了个...我觉得架构这方面来说,iOS 开发中最主要的矛盾其实就一个,Controller 的负担太重。

    1.2K50

    iOS开发之多表视图滑动切换示例(仿头条客户端)---优化篇

    前几天发布了一篇iOS开发之多表视图滑动切换示例(仿"头条"客户端)的博客,之所以写这篇博客,是因为一位iOS初学者提了一个问题,简单的写了个demo做了个示范,让其在基础上做扩展和改进。...被CocoaChina中iOS模块所收录实在出乎我的意料,链接地址(http://www.cocoachina.com/ios/20150706/12370.html),在CocoaChina上看了下面的评论...首先内存问题是必须考虑的,不能把这么多的TabalView实例化后添加到ScrollView上,只要是做过iOS的小伙伴这个问题应该不难看出。...= self; 8 tableView.dataSource = self; 9 tableView.tag = i; 10 11...上面是运行结果截图,下方是层次截图: ?   把新的代码更新到了GitHub上,优化还在继续,欢迎大家批评指正。

    2.1K70

    实践-小效果 Ⅰ

    *viewPlay[PAGECOUNT*PAGEVIEWCOUNT];  声明一个数组行的UIview 组。...相信细心的朋友会发现,状态栏是动态隐藏了,可是由于缺少状态栏的20像素,造成了背部的视图整体上移了20像素,我使用的是系统自带的导航栏,也尝试了动态增加 导航栏的高度从44...变为64,可是总有瞬间形变造成的不自然感,最后细心研究发现**滴滴打车是自定义的导航栏**,所以我使用的方法是没错的,只要需要的时候使用自定义的导航栏就可以达到 跟 滴滴打车一样的效果啦。...8.朗读文字 使用到的是 iOS 原声的  AVFoundation.framework 里面的API。 ...ios-sim 是一个可以在命令控制iOS模拟器的工具。利用这个命令,我们可以启动一个模拟器,安装app,启动app,查询iOS SDK。它可以使我们像自动化测试一样不用打开Xcode。

    1.2K30

    iOS基础问答面试题连载(二)-附答案

    10.LoadView 作用以及使用LoadView的注意点? 11.UIPickView是什么控件,基本用法怎样的? 12.KVC底层实现? 13.导航控制器View的结构是怎样的?...20.导航控制器的作用? 21.自动跳转与手动型跳转区别? 22.什么时候使用代理 ,代理的步骤? 23.ios当中存储方式有哪些?...24.tableView性能优化 目录 「Tim的博客」iOS基础问答面试题连载(一)-附答案 「Tim的博客」iOS基础问答面试题连载(二)-附答案 「Tim的博客」iOS基础问答面试题连载(三)-附答案...UIWindow是一种特殊的UIView,通常在一个app中至少有一个UIWindow iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的view, 最后将控制器的view...SQLite Core Data 24.tableView性能优化 tableView的缓存机制.

    1.4K90

    模拟京东商城实现导航条隐藏功能

    ,是我们自定义的UIView,才能实现效果!...高度) 问题难点:如果知道 下方的tableView滚动方法(怎么知道是向上滚还是向下滚动) 思路1:tableVIew本质是scrollview,判断scrollview的滚动方向,通过contentOffset...这里使用的就是思路2的方法: a.隐藏系统默认的导航条View,然后自定义和导航条一模一样的UIView上去 [self.navigationController setNavigationBarHidden...细节2:判断界面的显示or隐藏,如果导航条View已经隐藏了,再怎么上拉,也不能再调用使界面再次隐藏的办法,同时不能再让下方两个View的Y值 --; bug1.gif 如图所示,要添加判断,如果导航条已经隐藏了...解决方案 : 11.png 如图,我们发现,下拉的时候,跑出来的 mj_headerView - 高度54,就等于,直接让tableView的contentOffset.y = 54了!

    1.8K120

    iOS开发之多表视图滑动切换示例(仿头条客户端)

    好长时间没为大家带来iOS开发干货的东西了,今天给大家分享一个头条新闻客户端各个类别进行切换的一个示例。...点击相应的按钮是切换到对应的表视图上,下方红色的是滑动的指示器,同时支持手势滑动。运行具体效果如下图所示。 ? ? ?...一:实现方案 最上方是一个View, View上面实例化了一些按钮,平分屏幕的宽度,下方是一个ScrollView, ScrollView上面放了一些表视图,点击不同的Button, 滑动到对应的表示图上.../@brife 上方的按钮数组 9 @property (strong, nonatomic) NSMutableArray *topViews; 10 11 ///@brife 下方的表格数组 12...tableView]; 11 [_scrollView addSubview:tableView]; 12 } 13 14 }     9.ScrollView的回调方法如下,

    3.7K60

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

    buttonTitle)     bar.scopeButtonTitles = @[@"精确搜索",@"模糊搜索"];     bar.selectedScopeButtonIndex = 1;//通过下标指定默认选择的那个选择栏...    //7.控制搜索栏下部的选择栏是否显示出来(需设置为YES 才能使用scopebar)     bar.showScopeBar = YES;     //8.设置搜索栏右边的按钮     bar.showsSearchResultsButton...tableView,如果是显示的就是搜索结果的数据,   如果不是,是TableView自身的view,则需要显示原始数据。...(当搜索内容为空时,返回的时所有数据,如果搜索内容为空,返回空时,需要进行其它修改操作.) 4 开发技巧 4.1 兼容IOS7、8并结合自定义导航条使用 4.1.1 核心思路         虽然UISearchController...使用时注意:在searchBarTextDidBeginEditing事件中必须将当前子视图上移44px(即移到导航条中),以便达到让用户觉得UISearchController界面中的Search bar

    58920

    常用开发技巧系列(一)

    前言:         在我们iOS开发的过程中,你要是知道一些特别的小技巧的话,其实是可以帮你省很多事的,当然这东西也不需要我们专门去记,估计没有几个开发人员喜欢死记硬背,有需要,上网找,边学边用才是技巧的正确的打开方式...默认为 nil NSString *const NSVerticalGlyphFormAttributeName; 搭配上面的阴影使用效果更好 */ 五:侧滑手势     这里说一下,要是在导航栏上...self.tableView.tableFooterView = [[UIView alloc]init]; } #pragma mark - Table view data source - (NSInteger...= @"张旭你个混蛋"; return cell; } 八:导航栏那些事     导航栏上面的那些事儿的话我先给大家一个链接,总结的比较的全面,具体知识大家而已去看看这个链接里面的内容,我们就说点小技巧...,简单的,怎样把导航设置成透明。

    880101

    iOS开发技巧篇

    在iOS开发中,有一些技巧可以提高程序猿的开发效率。 1,Xcode真机调试 Xcode 7推出之前,想要真机调试,iOS开发者必须花$99购买苹果开发者账号,而且步骤繁琐,需要下载证书认证。...3,code snippet Xcode默认提供了非常丰富的代码片段可供选择,在实际开发中很多的提示就是一个代码片段,具体可以参加 Xcode 的右侧工具栏下方: ?...4,让 view 从屏幕顶部开始 iOS7 以后,有导航的话,controller 的 view 默认是会以导航栏的下方为起点开始,如果需要让它从屏幕顶部开始的话,只需要一句话就可以搞定。...setValue:[NSNumber numberWithInt:UIInterfaceOrientationLandscapeRight] forKey:@"orientation"]; (4) 对于有导航栏的...style 属性设置为 Plain 时,这个tableview的section header在滚动时会默认悬停在界面顶端。

    1.7K90

    iOS开发之微信聊天页面实现

    在上篇博客(iOS开发之微信聊天工具栏的封装)中对微信聊天页面下方的工具栏进行了封装,本篇博客中就使用之前封装的工具栏来进行聊天页面的编写。...在聊天页面中主要用到了TableView的知识,还有如何在俩天中显示我们发送的表情,具体请参考之前的博客:IOS开发之显示微博表情,在这儿就不做赘述啦。...在聊天页面用到了三对,六种Cell,不过cell的复杂度要比之前的新浪微博(IOS开发之新浪围脖)简单的多。废话少说吧,还是先来几张效果图,在给出实现代码吧。   ...当点击图片时会跳转到另一个Controller中来进行图片显示,在图片显示页面中添加了一个捏合的手势(关于手势,请参考:iOS开发之手势识别)。...,通过Block,工具栏和ViewController交互,具体ToolView的Block实现,请参考上一篇博客(iOS开发之微信聊天工具栏的封装),聊天工具栏使用代码如下: 1 //实现工具栏的回调

    4.2K70

    模拟京东首页导航条渐变

    思路:使用UIView创建自定义导航条,然后在自定义的UIView进行操作 隐藏导航条: - (void)viewWillAppear:(BOOL)animated{ [super viewWillAppear...:animated]; self.navigationController.navigationBarHidden = YES; } 初步样式.gif 隐藏导航条之后,创建一个UIView,上面左右两个...2.监听滚动,实现透明度变化 这里,就需要用到scrollView的代理方法 scrollViewDidScroll了 1.png 监听scrollView的滚动方法,拿到tableView的偏移量...(offset.y)的值 如图我们可以发现,往下滑动的时候,tableView的offset.y一直在递增 思路:tableView的offset.y 一直在变化,根据这个偏移量,动态设置导航条的透明度...UIStatusBarStyleDefault; } //设置状态栏刷新 [self setNeedsStatusBarAppearanceUpdate]; } //设置顶部状态栏颜色

    2.6K90
    领券