首页
学习
活动
专区
工具
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.6K60

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上,优化还在继续,欢迎大家批评指正。

2K70

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

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

1.8K120

实践-小效果 Ⅰ

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

1.1K30

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

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.6K60

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

34120

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 时,这个tableviewsection header在滚动时会默认悬停在界面顶端。

1.6K90

常用开发技巧系列(一)

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

833101

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

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

4.1K70

关于刘海打理这种事儿,美团点评iOS工程师早就有经验了,不信你看!

图3.3 iOS 11 横屏 Tableview 作用方式 这个问题原因是:横屏下 UITableView,Cell 都是和屏幕一样宽,但是 Cell ContentView 会被 inset...② 搜索页面输入框位置发生了偏移,这是因为 iOS 11 导航视图层级结构发生了变化,和 iPhone X 并无直接关系。iOS 11 导航视图层级关系如下: ?...图4.3 iOS11 下“我Tab” 页面 Tableview 发生偏移 出现这个原因是:iOS 11 之后 scrollview 多出来一个 adjustedContentInset 区域。...当然还可以通过设置 tableview.contentOffset 来抵消这个值,但还是推荐第一种。 ④ “我Tab” 导航上,右边那个按钮全都发生了偏移,导致无法点击。...这个问题也是在新导航结构视图下会出现,原因是新导航结构用了 AutoLayout 布局,我们这个并不是用常规 UIBarButtonItem 方式实现,而是一个 UIBarButtonItem

2.1K70
领券