美文网首页iOS 知识点
一周技术回顾(2020.9.11)

一周技术回顾(2020.9.11)

作者: 起名字让我很头疼 | 来源:发表于2020-09-11 16:49 被阅读0次

iOS 小知识

分享一个比较常用的知识点,点击某个UITableViewCell不执行-[UITableView didSelectRowAtIndexPath:]方法的几种方式:

1.可以直接设置cell.userInteractionEnabled = NO;

2.可以实现UITableViewDelegate中的-[UITableView shouldHighlightRowAtIndexPath:]方法,设置对应indexPath返回NO;

3.可以实现UITableViewDelegate中的-[UITableView willSelectRowAtIndexPath:]方法,设置对应indexPath返回nil,不过这种方式cell还是会有高亮效果,需要手动设置对应cell.selectionStyle = UITableViewCellSelectionStyleNone;

以上三个方法,都不会进UITableViewDelegate的-[UITableView didSelectRowAtIndexPath:]方法。

用第一种方式设置后,cell上的所有子View都不能被点击了;

而第二种方式不会影响cell的子View的响应事件的传递,如果cell上有UIControl的子类,依然可以被点击;

第三种方式也不会影响cell的子视图的响应事件,但是需要额外设置不显示高亮效果。当然,你也可以在-[UITableView didSelectRowAtIndexPath:]方法的对应indexPath直接return.

Swift学习 Tips 1

带有嵌套类型的命名空间

图1

代码出处: Namespacing with nested types

什么是嵌套类型

嵌套类型是指在某个类型中定义新的枚举,类或者结构体类型,这两个类型之间是嵌套的关系.

具体来说,要在一个类型中嵌套另一个类型,将嵌套类型的定义写在其外部类型的 {} 内,而且可以根据需要定义多级嵌套

那么图示中的 Map 结构体中包含了两个嵌套定义的结构体(Model,Position)和两个嵌套定义的枚举(Direction,Size)

什么是命名空间

命名空间的定义:是表示着一个标识符的可见范围,一个标识符可以在多个空间内定义,但是它在不同空间内的含义确不相同,而且互不想干,这样在一个新的命名空间内定义任意的标识符,这个标识符不会与任何已有的标识符产生冲突,因为它们属于不同的命名空间.

例如:A公司员工a的工号为"123",B公司员工b的工号也为"123",但是由于两个人在不同的公司.使用相同的工号来标识并不会产生影响.A和B两个公司就是两个独立的命名空间.

Swift中的嵌套类型和命名空间又有什么联系呢?

在Swift中并没有所谓的命名空间,但是可以通过嵌套类型,可以实现相同的效果,如:图2

图2

SchoolA.ClassSchoolB.Class可以区分不同School中的Class类型.

示例代码分析

图1中的代码是不完整的,从代码中可以看出并没有定义Terrain等类型,但是这里声明了terrain 变量是一个字典类型,它的 key 是 Position 类型,它的 value 是 Terrain.Model 类型.

字典类型的简化语法有2中,一种是 Dictionary<Key, Value> ,一种就是 [Key: Value].

还有我们看到了这段代码中定义了一个字符串类型的枚举enum Size:String 这个是在OC当中是不存在的,这里参考内容枚举,里面有详细的介绍,非常厉害的Swift,非常神奇.

Swift学习 控件推荐

Fluid Slider

Ramotion 出品的滑动控件,带有弹出式气泡的滑块小部件。

下周推出使用方法和使用详情

相关文章

  • 一周技术回顾(2020.9.11)

    iOS 小知识 分享一个比较常用的知识点,点击某个UITableViewCell不执行-[UITableView ...

  • 2020.09.05-2020.09.11个人复盘

    2020.9.5-2020.9.11一周计划 1、论文修缮:√ 2、减肥:×,生理期。 3、MPA备考:数学分册学...

  • 2020.9.11

    现在是凌晨1点11分。 此刻感觉心情非常糟糕,已经有几年没有这样的感觉,陷入一种无法自拔绝望的情绪。 感觉自己一无...

  • 2020.9.11

    昨天晚上他被我熊哭了,自己也生了一肚子气。基于两件事情:一是从学校回来就主动告诉我说今天作业不多,在学校已经...

  • 2020.9.11

    日精进,今日体验:客户不同,不能用一种方法去对待。把握质量核心之重。每辆车的安全行驶,排除隐患。

  • 2020.9.11

    看到一个很有意思的活动,日更挑战,主页还会有勋章呢,坚持的时间越长会不会越光荣,最重要的是会不会越来越有动...

  • 2020.9.11

    昨天日更的口号喊出来了。也是受懂懂老师的影响,日复一日的威力。 有时候也会想,如果我一天背10个英语单词,那10天...

  • 2020.9.11

    时间记录放暑假后就没记录了,现在想再记录起来,总是会忘记…另外因为最近都没做计划,比较随性,所以也没刻意想着非要记...

  • 2020.9.11

    农历七月二十四 星期五 龙江阴 又到周五 下午早早回家煮上饭,煲上汤,洗好菜,切好肉,一切准备就绪 五点五十接姐姐...

  • 2020.9.11

    明天,回家。 将近大半年没有回过家了。 长大之后,总会有身不由己的时候,因为各种原因没有回过家,我们总说,现在交通...

网友评论

    本文标题:一周技术回顾(2020.9.11)

    本文链接:https://www.haomeiwen.com/subject/frwtrttx.html