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

在Swift中创建可缩放的图像视图

设置滚动视图 我们需要实际设置我们的滚动视图,使其可缩放和可平移。这包括设置最小和最大的缩放级别,以及指定用户放大时使用的UIView(在我们的例子中,它将是图像视图)。...我们将通过在我们的类中添加imageName字符串,并在字符串改变时更新UIImageView来实现。...让我们给我们的类添加另一个初始化器,这样我们就可以在代码中设置图像名称。 medium.com/media/074d4… 就这样了!现在我们可以像这样通过图片名称以编程方式初始化我们的视图了。...这对我们的类来说是一个相对简单的补充,所以接下来让我们来添加这个功能。我们将创建一个UITapGestureRecognizer,当用户双击时,用它来改变滚动视图的缩放比例。...添加这种额外的功能可以真正帮助人们参与到你的应用程序中显示的图片中,而且通常是用户所期望和要求的功能。

5.7K20

iOS 9 Storyboard 教程(二下)

引用,可以传递到这个方法.它用来往玩家数组里添加新的Player对象来作为数据源.然后它会告诉tableView添加了新的一行(在底部),因为tableView和它的数据源始终是同步的....在PlayerDetailsViewController中添加一个初始化方法和一个反初始化方法: required init?...现在让我们给这个新的控制器一些数据来显示吧.在GamePickerViewController.swift中,把一个具有硬编码值的games字符串数组添加到顶部: var games:[String]...这个方法在点击之后就会取消选中.那使得它从灰色高亮褪色为正常的白色.然后它就会从先前选中的单元格移除对号标记,然后把对号放到刚刚点击的那一行上....在PlayerDetailsViewController.swift里,在类的顶部,添加一个属性来保存选中的游戏,那样你就可以在Player对象存储它.给它一个默认的名字”Chess”,那样你就会一个新的玩家始终都会有衣蛾选中的游戏名字

2.2K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    iOS 9 Storyboard 教程(二上)介绍Segue静态单元格(static cell)

    在第一篇文章第一篇文章中,你已经学到了Interface Builder的基本用法来创建和连线多个控制器,以及使用在storyboard中可以通过直接创建自定义的tableViewCell....介绍Segue 时候在storyboard中添加更多的控制器了.你激昂会创建一个控制器,它允许用户向这个app中添加玩家....静态单元格(static cell) 当你完成这个部分的时候,Add Player控制器看上去和下图差不多: 这是一个分组的table view,但是你不需要为这个表格创建一个数据源.你可以在storyboard...之后,Xcode将添加这个属性到PlayersDetailViewController类里而且会和storyboard相连: 在表的单元格里创建视图的连线正是我所说的你不应尝试用原型单元格,而用静态单元格是可以的...,基本的单元格也可以在一个内置tableView的视图控制器里起作用. ---- Note: 如果你创建了一个有很多静态单元格的控制器–很多都适合可见的frame–然后你可以用鼠标或触摸板滑动手势(2指点击

    3.3K10

    Swift - 给TableView添加编辑功能(删除,插入)

    [indexPath.row] print("str\(str)") } // 设置单元格的编辑的样式 func tableView(_ tableView: UITableView, editingStyleForRowAt...{ return "确认删除" } // 单元格编辑后的响应方法 func tableView(_ tableView: UITableView, commit editingStyle:...(2)长按表格进入编辑状态,所有单元格都可以进行删除操作。 (3)同时在编辑状态下,在下方会自动出现一个新增操作单元格。点击前面的加号,便会给数据集中添加一条新数据。 ?...[indexPath.row] print("str\(str)") } // 设置单元格的编辑的样式 func tableView(_ tableView: UITableView, editingStyleForRowAt...{ return "确认删除" } // 单元格编辑后的响应方法 func tableView(_ tableView: UITableView, commit editingStyle:

    3K20

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

    6EDD4AC9-47E3-401F-91A4-2DA836439787.png Demo开始之前,我们想想应该会使用到屏幕宽高等一些常用的值,在OC中,咱们可以使用PCH然后宏定义,然而在Swift中...coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } } 代码中自定义的单元格加上了一个...ImageView和一个Label,虽然数据是死的,但是在Swift中,另外一个类是可以直接访问另一个类中的变量的(如果没做任何保护的话),所以我们在配置cell的时候是可以直接赋值的,这里就不弄了,然后我们看创建表视图那一块...} } 创建单元格的时候直接使用我们自定义的BuildListTableViewCell创建就行了 好了,这篇文章也完了,这只是一个非常简单的demo,大家平时工作要做的肯定不止这么点的,哈哈哈...在下篇文章中会讲讲,Swift项目已上github:https://github.com/qingmomo/Swift-die OC版的demo在我们官网:http://www.innsmap.com

    2.4K90

    iOS开发常用之网络

    KtColor.swift - 利用Swift的语法特性简化创建UIColor对象的过程。具体文章可以参考博客:当UIColor遇上Swift。...MDCSwipeToChoose - MDCSwipeToChoose可简单地添加滑动手势来调用UIView,并使用该行为提供了一个组件以创建类似Tinder应用的喜欢或者不喜欢界面的轻扫。...答案选择切换页 - 将scrollview和tableview封装在一起,在初始的时候简单的将数据带上,就可以一页一页的左右来回滑动。...Gecco.Swift - Gecco.Swift是一款支持对视图进行局部高亮的Swift库,帮助iOS开发者快速创建产品的新手指导界面。...Context-Menu.iOS - 可以为应用程序的菜单添加漂亮的动画内容,可自定义图标,并可根据自己的喜好设计单元格和布局。

    23.7K10

    自学Swift之路(一)UI入手之基本控件

    本系列文章都是以有OC基础来写的,所以注释不会写太多,对基础不够了解的同学可能不太适合,另外本系列文章不是以教程式的形式来写,是记录学习过程的,所以不会有多少讲解 第一步:创建工程 A62A869C-6B27...,里面创建一些基本的UI控件,然后在viewDidLoad中调用: override func viewDidLoad() { super.viewDidLoad()...,两种语言控件的属性是一样的,只是语法有些不一样而已,多写几个就会发现Swift都是一个套路.那好吧,简单的控件就不写了,接下来我们来写下UITableView // 5.UITableView...} 当然,别的方法也是一样,如点击单元格: func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath...本人也是正在学习中,文章内容如有错误,还请指正,有需要优化的地方,也请帮忙指出,帮助大家共同进步

    2.9K110

    AsyncDisplayKit 2.0 教程:入门「译」

    在这两部分 AsyncDisplayKit 2.0 教程中,你将掌握使用ASDK构建一个实用的和动态的应用程序的所有要素。在第一部分中,你将要学习一些在你构建应用程序时可以用到的宏观思想。...然后,在 -initWithAnimals: 方法中添加。...你可以选择为单元格定义最小和最大尺寸,而不是提供静态高度。这种情况下,你希望每个cell的高度至少为屏幕的 2/3。 现在不用担心太多,这个会在第二部分中介绍。...image.png 真是一个流畅的 tableView!一旦你开始做了,那就让我们做的更好吧! 无限滚动 在大多数应用中,服务器的数据点的个数往往会多于当前 tableView 中显示的单元格数量。...准备好之后,请转到该项目的第2部分,了解 AsyncDisplayKit 2.0 引入的强大的新的布局系统。 如果你想先进行深入了解,你可以阅读 AsyncDisplayKit主页 的文档。

    2.2K20

    Travis CI 教程:入门

    simulator_task_list 该应用已创建任务列表。红色部分是过期任务,而绿色部分是即将到来的任务。 查看代码,您将看到已经设置了一些测试。...即使您的项目是在 Swift 中,Travis 也只使用该 objective-c 值来了解使用 Xcode 命令行工具进行构建。...由于 Xcode 知道如何分辨 Swift 中的内容以及 Objective-C 中的内容,因此您的 Swift 项目会很好。...:] 使用 Xcode 6.4 工具来创建构建,因为您使用的是 Swift 1.2。目前,这需要指定您要使用的 VM 映像 - 在本例中 xcode6.4。 使用指定的 Xcode 项目文件。...taskUpdated(task) } 最后,转到 MasterViewController.swift,然后在 tableView(_:cellForRowAtIndexPath:) 返回单元格的上方添加一行

    5.1K21

    iOS - RxSwift 项目实战记录

    有的话那从今天开始就要认清楚这一点,【tableView其实是由section组成的】,所以在使用RxDataSources的过程中,即使你的setion只有一个,那你也得返回一个section的数组出去...一、自定义Section 在我们自定义的Model中创建一个Section的结构体,并且创建一个扩展,遵循SectionModelType协议,实现相应的协议方法。...可以看到我为Output添加了一个序列,类型为我们自定义的LXFSection数组,在Input里面添加了一个请求类型(即要请求什么数据,比如首页的数据) 我们通过 transform 方法将input...,不然会不方便阅读和理解 } } 接着我们在ViewController中初始化我们的input,通过transform得到output,然后将我们output中的sections序列绑定tableView...中初始化刷新控件 为tableView设置刷新控件,并且在创建刷新控件的回调中使用output的requestCommond发射信号 tableView.mj_header = MJRefreshNormalHeader

    2.9K41

    iOS 9 Storyboard 教程(一下)

    选择Swift语言,然后点击下一步(Next)创建. ?...这个table view应该会显示一列玩家名单,所以现在你需要为这个app创建一个数据模型—一个包含Player对象的数组.使用Swift File模板在iOS/Source里为这个工程添加一个新文件....接下来,你需要把一个Player对象数组赋值给PlayersViewController.使用Swift File模板为开始,创建一个新文件,命名为SampleData.把它添加到SampleData.swift...(在选中的菜单视图部分).这个stack view应该放到正确的位置上,之后橙色的约束错误就会消失了....在工程中添加一个新的文件,使用Cocoa Touch Class模板.命名它为PlayerCell,并且把它作为UITableViewCell的子类.不要勾选创建XIB的选项,正如你在storyboard

    3.1K20

    swift4.0语法杂记(精简版)

    print("小仙女"):print("妖精") 非常有意思的是,如果开发者只想处理条件成立的部分,此时可以在冒号后面用一个小括号来代替条件不成立的部分。 x > 5 ?...而在之前调用之时,只能看见第二个参数之后的名称,表达起来并不直观。如何解决这个问题呢? 可以采用给参数起别名的方式,在参数前面添加一个别名。...、tableView的用法 1、 懒加载 swift中也有懒加载的方式,并且在swift中有专门的关键字lazy来实现某一个属性实现懒加载。...将tableView添加到控制器上的View。...4 中创建一个 KeyPath 用 \作为开头: \Kid.nickname 当编译器可以推导出类型时,可以省略基础类型部分: \.nickname 上面的代码在 Swift 4 中就可以这样写: struct

    15.4K90

    窥探Swift之协议(Protocol)和委托代理(Delegate)回调的使用

    说到协议,在Objective-C中也是有协议的,并且Swift中的协议和Objc中的协议使用起来也是大同小异的,在Java等现代面向对象编程语言中有接口(Interface)的概念,其实和Swift中或者...上显示的数据了,在正常开放中这些数据往往来源于网络请求,而在本篇博客中就模拟数据源,来为我们的TableView提供显示的数据。...原理图有了,接下来就要使用代码来创建出上述结构的数据以供TableView的数据源使用,下面的方法就是实现上述结构的函数。        ...这个协议可以定义在EditViewController.swift源文件中。在协议定义之前,先对什么是协议简单的提上一嘴。...上面的场景在iOS开发中极为常见,使用场景也是比较广泛的。所以协议无论在Swift还是在iOS开发中都是极为重要的概念之一。

    3.6K80

    Swift-MVVM 简单演练(一)

    ,在 Swift 中还可以用来切分代码块 可以把功能相近的函数,放在一个extension中 */ extension HQMainViewController { /// 设置所有子控制器...---- 添加下拉刷新控件 在基类控制器中定义下拉刷新控件,这样就不用每个子控制器页面单独设置了 给refreshControl添加监听方法,监听refreshControl的valueChange事件...在基类控制器的setupUI(设置界面)的方法里面,我们直接创建了tableView,那么我们如果有一个标记,能根据这个标记来选择是创建普通视图,还是创建访客视图。就可以很好的解决此类问题了。...所以如果当真用的时候要慎重! ---- 监听注册和登录按钮的点击事件 在HQVistorView里将两个按钮暴露出来,然后直接在HQBaseViewController中添加监听方法即可。...则可以直接通过addTarget的方式为该视图中的按钮添加监听方法 这样做的代价是耦合度高,控制器和视图绑定在一起,但是省略部分冗余代码 ---- 调整未登录时导航按钮 如果单纯的在setupVistorView

    10.3K51

    在iOS中怎样创建可展开的Table View?(下)

    接上篇:在iOS中怎样创建可展开的Table View?...(上) 展开和合拢 我猜这部分可能是你最期望的了,因为本次教程的目标将会在在部分实现.第一次我们设法让顶层的cell,在它们点击的时候展开或者合拢.以及显示或者隐藏合适的子cell....真正的原因是因为我选择开始处理cell的类型,我继续在tableView的代理方法里修改,在里面,我将添加一个else来处理没有展开cell的情况,然后我们将检查点击cell的标识符的值.如果标识符等于...响应其他用户操作 在CustomCell.swift文件中,你可以发现CustomCellDelegate协议的所需的代理方法都已经被声明.通过在ViewController类里实现它们我们需要设法让app...总结 正如我开始说的,创建可展开的tableView在某些时候真的很有用,从麻烦当中创建新的视图控制器,可以用这种tableView来处理,它可以为app节省时间.在这次教程先前的部分,我向你提出了一种创建可展开

    1.5K30

    C++ Qt开发:StandardItemModel数据模型组件

    循环添加数据到模型中,包括 "20210506"、"lyshark" 和 "24"。 这样,就创建了一个包含表头和数据的 QTableView,并将其显示在 MainWindow 中。...; 1.3 插入与删除 首先来解释一下如何添加一行新的行,其实添加与插入原理一致,唯一的区别在于,添加一行新的数据是在行尾加入,这个可以使用model->columnCount()来得到行尾,而插入则是在选中当前...如下所示的函数用于在 TableView 中追加一行数据,具体步骤如下: 创建一个 QList 容器 ItemList 用于存储一行数据的 QStandardItem。...// 【添加一行】:为TableView添加一行数据(在文件末尾插入) void MainWindow::on_actionAppend_triggered() { QList添加到链表中 } // 创建最后一个列元素,由于是选择框所以需要单独创建 // 1.获取到最后一列的表头下标,最后下标为6 QString str = model

    46620

    iOS表视图单元格高度自适应

    屏幕快照 2016-11-11 下午7.23.36.png 一、Masonry和FDTemplatelayoutCell实现自适应 Masnory帮助我们在单元格中设置约束,实现视图的自动布局,这里不再赘述...我们需要做的就是使用Masonry对视图单元格中的位于最底部的视图设置bottom约束,使其能够确定距离单元格最低端的距离。...使用的时候关键步骤包括: 1、注册表视图的单元格 这里分为NIb文件和普通类文件的单元格注册,我使用的是xib文件创建的单元格,代码如下: - (UITableView *)tableView{...,所以在返回单元格方法里判断单元格是否存在是没有意义的,getOrderTableViewCell不会调用,在这个方法里设置的布局约束也是无效的。...修改的方法是如下; - (void)awakeFromNib { [super awakeFromNib]; //awakeFromNib方法中添加约束 [self setupConstraints

    1.8K70

    iOS开发——UITableView勾选效果

    indexPath``` 方法中实现判断被选中的单元格的功能。...记录下之前选择的单元格,并且实时更新。 - 其次,解决单元格的复用问题。不然当单元格复用时,会显示多个勾选的BUG。看了一下网上分享的很多的方法,都没有解决单元格复用的问题,或者问的很笼统。...首先我们先声明一个变量,用来存储被选择的行数的标志 @property (nonatomic, strong) NSIndexPath *selectPath; //存放被点击的哪一行的标志 之后我们实现...deselectRowAtIndexPath:indexPath animated:YES]; } 最后看一下怎么在```- (UITableViewCell *)tableView:(UITableView...*)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath```中添加一段代码,解决复用问题 if (_selectPath == indexPath

    1.7K30
    领券