iOS-学习笔记-UI-第七天

为什么类内的方法还能创建所在类的实例?


1. 方法在创建对象实例时会只被加载到方法区中一次,同时方法会隐式传递一个参数,参数就是调用该方法的引用。而这个参数由系统起了一个行参的名字,叫self。于是方法内部使用self点调用属性时,self就会随着传入的引用不用,而变化

2. 既然方法只被加载一次,所以那个转换的隐式参数类型的确定,就会根据定义方法时所在的类文件的类名来定,也就意味着,这个俄方法只有这个类型的对象才能调用。

3. 基于以上亮点,可以暂时把方法剥离到类之外,定义类更多的时为类描述,这个类为了存在数据需要几个属性,所以,当调用方法时,检测某一个类实例这样的语句时,系统只是根据类中有关的属性来创建空间,不影响方法。




今天

 

1. UIPageControl

    1.1 作用:页码提示的效果

    1.2 使用

        属性:numberOfPages 共有几页

                 currentPage 被选中的页的索引

                 userInteractionEnabled 是否打开用户交互

                 pageIndicatorTintColor  默认颜色

                 currentPageIndicatorTintColor 被选中的颜色


2. 一些问题的解决套路

    问题:如果像处理某些空间与用户交互后产生的事件时,解决套路就是 设置代理 实现方法

    套用规则:如果问题描述的时候,就可以套进“当...时,就...”句式,那么就要想到代理

            (1)设置控件的delegate属性为当前控制器

            (2)当前控制器要遵守协议

            (3)进入协议中,观察方法名,初步判断方法的执行时机,找到一个与问题时间点最贴近的方法,实现它。

            (4)在实现方法中,可以将委托方的一些属性或方法中传入的参数,使用NSLog打印,观察数值的变化,从而判断实现的方法是否与需求一致



3. 表视图

    3.1 表视图:类型 UITableView,继承自UIScrollView,如,以拨动屏幕的方式查看更多的内容,到达视图边界时可以弹跳

    

    3.2 表视图的分类

        普通样式(Plain)

        分组样式(Group)


    3.3 表视图的组成部分

            UITableView

                    tableHeaderVIew

                        sectionHeader

                            row(行,单元格)UITableViewCell

                    tableFooterView

        表头视图

        表尾视图


    3.4 如何使用?

        (1)创建UITableView的实例

        (2)设置表视图的frame

        (3)设置表视图的数据源代理

                a. tableVIew.dataSource 

                    tableView.delegate(表现代理)

                b. 控制器遵守UITableViewDataSource协议

                c. 回答三个问题

                    1》表格有几个分区

                        numberOfSectionsInTableView

                    2》表格的每个分区有几行

                        numberOfRowsInsection

                    3》每一行什么样

                        cellForRowAtIndexPath

                    4》点击一行左什么

                        didSelectRowAtIndexPath

                    以上四个方法简称尾:三问一答

        (4)添加表视图到控制器的视图中


4. UITableViewController 表视图控制器

        4.1 是什么?

            一种继承自UIViewController的特殊控制器,自带的那个视图天生已经时表视图了。


        4.2 方便点

            a. 自带的视图时表视图,通过访问控制器的tableView属性访问到

            b. 当前控制器已经被设置为表视图的数据源和delegate代理了

            c. 当前控制器已经遵守了dataSource和delegate协议


        4.3 使用UI TableVIewController时,只需要自定义一个类,继承自表视图控制器,然后关注三问一答即可


5. 多分区的表视图

    实现步骤

        (1)创建完表视图控制器后,选中xib文件,找到tableVIew,在第四个检查器中,修改style属性为group

        (2)在回答三个问答



6. 单元格的重用

        6.1 系统提供的单元格重用机制

            系统会根据屏幕的大小,计算出为类完整的消失一屏需要几个单元格,就先只创建几个cell对象。

            当用户拨动表格时,系统进行判断,查看,是否需要新的单元格来填充滚动过的屏幕,如果需要新的cell,则询问第三个方法来得到cell对象

            每当用户拨动表格,有完整的单元格已经超出屏幕,不需要在显示时,系统会自动将这个单元格对象存在一个队列中,可以不用在新建其它cell对象,而去队列中将那些超出屏幕后回收的单元格对象再次取出来,修改一下内容,再次防盗屏幕中显示。

        6.2 单元格的重用机制



7. UITableViewCell

        7.1 内容视图 contentView

            系统自带三个属性

                textLabel

                detaiTextLabel

                imageView


            在创建cell时,设定单元格的样式,可以影响到三个部分的显示位置


            UITableVIewCellStyleDefault

                textLabel和imageView左右排布,无detail

            UITableViewCellStyleSubtitle

                textLabel,imageView,detailTextLabel都存在,textLabel在上,detailTextLabel在下

            UITableViewCellStyleValue1

                三部分都有,detail右对齐

            UITableViewCellStyleValue2

                无imageView,detail左对齐

        7.2 辅助视图




作业:

1. 欢迎界面完成


2. 熟练使用UITableViewController完成表格界面的制作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值