好的,请告诉我你希望我提供哪方面的答案。
UIActionSheet是IOS提供给我们开发者的底部弹出菜单控件,一般用于菜单选择、操作确认、删除确认等功能。
首先,需要在Info.plist配置文件中,增加键:UIViewControllerBasedStatusBarAppearance,并设置为YES;
- (instancetype)initWithTitle:(NSString *)title delegate:(id<UIActionSheetDelegate>)delegate cancelButtonTitle:(NSString *)cancelButtonTitle destructiveButtonTitle:(NSString *)destructiveButtonTitle otherButtonTitles:(NSString *)otherButtonTitles, ...;
转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/50163725
相信在iOS开发中,大家对UIAlertView和UIActionSheet一定不陌生,这两个控件在UI设计中发挥了很大的作用。然而如果你用过,你会发现这两个控件的设计思路有些繁琐,通过创建设置代理来进行界面的交互,将代码逻辑分割了,并且很容易形成冗余代码。在iOS8之后,系统吸引了UIAlertController这个类,整理了UIAlertView和UIActionSheet这两个控件,在iOS中,如果你扔使用UIAlertView和UIActionSheet,系统只是会提示你使用新的方法,iOS9中,这两个类被完全弃用,但这并不说明旧的代码将不能使用,旧的代码依然可以工作很好,但是会存在隐患,UIAlertController,不仅系统推荐,使用更加方便,结构也更加合理,作为开发者,使用新的警示控件,我们何乐而不为呢。这里有旧的代码的使用方法:
之前看了 Ray Wenderlich 的一篇文章 学习了一下怎么把 UISearchBar 放在 UITableView 的头部,来进行列表搜索,然后发现了两个问题,用了好久才解决:
在开发中,弹出提示框是必不可少的。这两天项目中统一对已经被iOS API废弃的UIAlertView和UIActionSheet进行替换,我们知道,UIAlertView和UIActionSheet都已经被iOS的API所废弃了。在两者的API中都建议用UIAlertController替代,并通过设置不同的类型风格来选择是原先的UIAlertView或UIActionSheet的形式。 之前项目中一直用的都是原先的UIAlertView和UIActionSheet风格,所以对UIAlertCont
其中,"查看"的buttonIndex == 1,"评论"的buttonIndex == 2,"取消"的buttonIndex == 0
本文介绍了一个基于CocoaAsyncSocket框架实现的TCP功能,可以实现TCP相关的功能,包括发送和接收TCP包,以及TCP的连接管理。同时,还介绍了如何使用该功能实现TCP的客户端和服务器。
视图(View), 视图控制器(ViewController)是IOS开发UI部分比较重要的东西。在学习视图这一块的东西的时候,感觉和Java Swing中的Panel差不多。在UIKit框架中都有一个UIWindow来容纳我们的View。应用程序中几乎全部的可视控件都是UIView以及UIView的子类的实例,并且UIWindow也是UIView的子类。UIWindow可以不借助于父类视图显示在屏幕上,其余的视图都需要添加到父视图中才能显示。窗口是用来显示视图的,下面我们将会结合着实例来具
场景: 在一个VC中,为一个UICollectionViewCell中的图片添加长按图片保存的事件。 长按保存图片 前提:infoPlist中添加相应权限:Privacy - Photo Libr
遮罩 HUD 指示器 蒙板 弹窗 UIAlertView的使用<代理方法处理按钮点击> UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"警告" message:@"是否要删除它?" delegate:self cancelButtonTitle:@"是" otherButtonTitles:@"否", nil]; //加登录框 alertView.alertViewStyle = UIAlertViewStyleLoginA
这8个元素(或元素组,因为箭头和“Dance Club”文本是一起动画的)是通过不同的开始时间递进进入视图的,这就是我们要在动画中获取的非常酷的波浪感效果。
今天先不去分析它的核心代码, 我们先看看ReactiveObjC库里面一些特别的东西, 如果大家点开ReactiveObjC目录应该会看到很多category, 今天我们先来看看这些
平常我在业务开发中,绝大部分情况都是使用的UITableView,而UICollectionView则是在极少情况下才会去使用,这就导致了我对UICollectionView略感陌生。本篇文章就是以二者对比的方式对UICollectionView做一个小总结。
在 iOS 13 中引入了新的 API — Diffable Data Source,它不仅能够驱动 UITableView 和 UICollectionView,而且可以更简单高效的实现数据的刷新。
添加ZHTableViewGroup 分组->添加ZHTableViewCell 模块
本文介绍如何在 Xamarin.iOS 项目中使用使用 ArcGIS Server 云端专题数据, 假设你已经准备好了 ArcGIS Client Runtime SDK for iOS 和 MonoTouch.ArcGIS 绑定项目。
为了支持arm64,之前已经折腾了很久,昨晚打包准备提交苹果审核时,测试那边的同事反馈说游戏上传自定义头像功能不可用了。
在前面的文章里面已经写过了“UITableView基础”,所以这篇里面就不再对这里面的内容进行介绍。如果有幸去瞄一眼的,可以通过文章下面的拓展链接传送门去看。& 今天重点聊一聊UITableView中经常使用到的代理方法及属性。本文不是工具箱,所以不会将所有的属性和方法都写下来噢。只是总结经常使用到的。太完整的也记不住,真的是要用的时候临时翻一下.h文件看看也行。 1. 常用属性 1.1 分隔线属性 属性名称 数值 作用 separatorStyle UITableViewCellSeparatorStyl
在 iOS 13 中 Apple 为 UITableView 和 UICollectionView 引入了 DiffableDataSource,让开发者可以更简单高效的实现 UITableView、UICollectionView 的局部数据刷新。新的刷新的方法为 apply,通过使用 apply 方法无需计算变更的 indexPaths,也无需调用 reload,即可安全地在主线程或后台线程更新 UI, 仅需简单的将需要变更后的数据通过 NSDiffableDataSourceSnapshot 计算出来。下面以 UITableView 为例进行讲解。
在IOS开发中,UItableView 的使用真的是最常见最普通的了,现在在自学swift 今天也是这用Swift 写了写 UItableview的使用,还有一些经常出错的地方。下面我先把整个控制器的代理列出来,大家可以顺便看看 swift 是怎样遵守协议的。 import UIKit // 遵守两个协议 class HomeViewController: UIViewController ,UITableViewDelegate,UITableViewDataSource { override
TableView 是 iOS 应用程序中非常通用的组件,几乎每一个界面都有一个TableView,而我们许多的代码都和TableView有关系,比如数据展示、更新TableView,一些响应选择事件等,而这些大多都会通过其代理函数来实现,所以在VC中我们通常需要实现大量TableView的代理函数,如下面这样
随着App的用户界面的内容越来越丰富,再强的手机可能都无法同时渲染复杂的UI界面和保证流畅的体验。所以,我们这些程序猿=。=在写代码的时候就要注意,如何尽可能提高用户的操作流畅性。 之前的做的项目,青桔音乐iOS客户端里面的首页就是一个类似微信朋友圈的“动态”页面,大致如下: 青桔动态页面 如果是你,你会怎么实现这个页面呢? 这还用问,当然是用UITableView+自定义的UITableViewCell。 UITableView是可以滑动的,为了不让用户在滑动中感到有卡顿,该如何优化?下面,我就写一下我自
在 iOS 开发中,UITableView 可以说是最常用的控件。几行代码,实现对应方法,系统就会给你呈现一个 60 帧无比流畅的列表,让初学者成就感爆棚。然而随着开发的深入,我们就会慢慢觉察到当前的 UITableView 实现会有这样或那样的问题。
前文我们聊了Flutter的ListView组件,其类似于OC中的UITableView;今天我们来聊聊GridView组件,其实现的效果类似于OC中的UICollectionView。
前言 本文源自实际开发中的需求,核心的要求有几个: 1、多个UITableview要支持左右滑动; 2、点击Tab也要有UITableview的滑动切换效果; 3、每个UITableview单独
一般iOS在UITableView没有数据的时候为了界面好看一点,UI会给这些没有数据的页面设计一些占位图,有的时候是纯图片,有的时候会有一些按钮操作。
iOS表视图高度自适应可以节省很多麻烦,尤其是涉及到复杂的业务逻辑时,今天尝试了使用Masonry和FDTemplatelayoutCell来布局表视图单元格,从而达到单元格高度自适应的效果,这里就总
在使用TableView的时候,经常会遇到一些无数据需要用到占位图的情况,所以就写一个控件来实现。 思路:使用UITableView Category来实现,由于占位图式样多种多样,所以控件就不用考虑很多情况,把占位图交给外部实现,控件内部只处理有数据和没有数据显示占位图即可。
相信大家平时在用 App 的时候, 往往有过这样的体验,那就是加载网络数据等待的时间过于漫长,滚动浏览时伴随着卡顿,甚至在没有网络的情况下,整个应用处于不可用状态。那么我们该怎么去提高用户体验,保证用
协议与委托代理回调在之前的博客中也是经常提到和用到的在《Objective-C中的委托(代理)模式》和《iOS开发之窥探UICollectionViewController(四) --一款功能强大的自定义瀑布流》等博客内容中都用到的Delegate回调。说到协议,在Objective-C中也是有协议的,并且Swift中的协议和Objc中的协议使用起来也是大同小异的,在Java等现代面向对象编程语言中有接口(Interface)的概念,其实和Swift中或者Objc中的Protocol(协议)是一个东西。
在 iOS开发之城市选择器一文中用两列的UIPickerView实现了城市选择器,今天用两个UITableView来实现一下,首先这种联动在很多地方用得上,而且方法有好几种,我这里选择了个人喜欢的一种方式:弄两个UITableView,让当前控制器管理。这种方式总体思路如下: 1、添加两个UITableView到当前控制器中,分别设置它们的的尺寸,然后拖线到控制器中 2、左边的表格设置数据源和代理为当前控制器,然后显示数据,右边的表格也设置数据源为当前控制器,然后显示数据操作。 3、监听左边表格控制器
1.在使用了MJRefresh之后,当UITableView滑到底部的时候需要继续上拉(比之前的上拉费力)才能进行刷新。
实现选择 网上大部分的教程,都是基于修改section的hearderView来实现的,但是看QQ的好友列表,style是grouped,显然不是使用section的header来处理。使用section的hearderView来实现的,十分简单,网上也有很多源码和教程,只要刷新一下dataSource然后调用就可以了。不在本次讨论的范围之内。 - (void)reloadSections:(NSIndexSet *)sections 这次我直接使用grouped的cell来做父cell,点击后展开相应的子
一、tableView双级联动 [菜单栏联动.gif] [UITableView双级联动.gif] 以上两种效果比较类似,实现的关键在于都是需要获得在滑动过程中滑动到tableView顶部的cell的indexPath。 方案一:获得当前可见的所有cell,然后取可见cell数组中的第一个cell就是目标cell,再根据cell获得indexPath。代码如下 - (void)scrollViewDidScroll:(UIScrollView *)scrollView{ if (scrollV
UIScrollView 恐怕是所有 App 都绕不过去的类——尤其是它的子类 UITableView 和 UICollectionView。看看我们日常常见的 App,新闻类的今日头条,社交类的微博和微信,电商类的淘宝、腾讯,日常管理用的备忘录和图片 App 的缩放功能,都或多或少得使用了 UIScrollView 及其子类。
上面这个问题的答案也是我写这篇文章的初衷,在最近给游戏添加一些列表的时候,对比着应用了一下他们两个,在它们两个之间的优劣势之间进行取舍,就有了这个问题的答案。
在新闻类,电商类等应用中,应用着大量的图文混排视图,在表视图UITableView中,开发者通常需要在如下代理方法中计算出当前cell填充内容后的高度,之后将其返回:
有这样一个需求,有一个用来展示商品的列表,你可以从别的数据源添加过来,能添加当然就能删除了,这时候就用到了UITableView/UICollextionView组或者cell的删除,但在测试的过程中发现这里会出现crash,然后在一个夜深人静的晚上安安静静的找了下原因,下面是我探究的结果来分享一下。
一、tableView双级联动 菜单栏联动.gif UITableView双级联动.gif 以上两种效果比较类似,实现的关键在于都是需要获得在滑动过程中滑动到tableView顶部的cell的ind
TableView是ios开发中经常用到的控件,这里统一记录一下开发中遇到的常用小技巧,不断探索更新,也希望大家可以告诉我更多常用的小技巧啦~一起进步。
金融产品中为了配合好运营 做好产品的营销和推广,往往在产品中加入一些埋点统计。这些统计常见的有产品曝光率 数据的转化率 用户的行为操作,市面上有很多平台做这些数据采集一键式的集成来辅助做好用户行为分析。然鹅这些粗粒度的统计产品往往不能全面很好的辅助互联网公司做好用户采集和建立用户画像模型,因此有条件的公司内部会做自己的用户行为埋点统计,打造一套自己的用户行为分析平台……
在iOS开发过程中,如果要使用到一些跟特定系统版本特性有关的功能,或者要适配低版本系统的用户,还有一些方法是新版本系统才有的,有一些方法在新版本中已经弃用了,这都需要对不同系统版本的设备进行分别的处理,而这有个前提就是判断系统的版本号。
本文介绍了一种使用Auto Layout、UITableView-FDTemplateLayoutCell以及Masonry结合使用的实践方案,来解决UITableView中cell高度计算的问题。通过Auto Layout让cell自适应视图大小,使用UITableView-FDTemplateLayoutCell自定义单元格布局,再结合Masonry对cell进行布局约束,从而让UITableView的cell高度完全自适应,以解决UITableView中cell高度计算的问题。
近期,接到一个需求,需要获取用户点击行为的操作路径,除了点击的坐标,classname等常用数据外,还需要控件的title,这样就可以更加直观的了解到用户的操作行为。
添加代理 UITableViewDelegate,UITableViewDataSource
该例子添加UITableView编辑功能 具体功能如下 功能很简单但很实用 @implementation AppDelegate @synthesize window = _window; @s
先说需求:在tableView中每一行有一个删除按钮,点击删除当前行。(很多项目都会用到吧) 写一段废话:写例子的时候一直想找一个大家常用的功能做,但当这个例子写完我又犹豫要不要传上来,原因是对于这个功能,其实有其他更好的方法解决,其中我代码中的(方法一)就是其中一个不错的解决方案。可是如果你细心会发现,runtime有个很大的好处就是你不需要再费劲找目标对象了。只需要 1 绑定。2 取出。用法简单又霸道... 代码: #import "ViewController.h" #import "SGMy
领取专属 10元无门槛券
手把手带您无忧上云