以下内容由@客服妹子爬楼整理,希望小伙伴的这些提问,对你有帮助/启发,感谢资源贡献者:Mi~、appleMan、赖着、蒋哥、Rocky、群主、诚绅、思、其乐无穷、♚Demonァ浅唱 、김위청、回忆满满、风、zhu王源,精选在此,喜欢请收藏,给答题的各位大佬点赞!
酷课堂iOS交流群,聚集了一群热爱技术、有趣、有料,平均Q龄在10年以上的“老司机”,他们遍布在全国/球各地,有知名企业iOS工程师、高校大学生、自由职业者……如果你也是这样的人,欢迎加入我们,一起畅聊iOS技术及周边。
每晚11点后熄灯(禁言),只聊技术,几乎不闲聊。
IT从业者自学成功的不少,但从入门到放弃的人更多。一个人走的快,一群人走的远,希望你会是坚持到最后的那一波,希望我们可以一起相伴走的更远一些。
付费学员专享福利:
(额外福利,不承诺永久提供!)
1.为了更好的交流,我们开设了QQ群
2.已购买课程的同学,请添加小课微信号:coolketang001、QQ:3068527144
3.截图订单号,即可获取对应QQ群号,及免费练习源码。
(苹果商店的订单号,可在购买账号绑定的邮箱中找到)
1
问题贡献者:登高望远
答题大佬:群主 回忆满满
请问按视频打的还是报警,是何原因?
didReceiveMemoryWarning方法是Xcode在新建ViewController时自动生成的,不需要手写,手写容易出错。请将didReceiveMemoryWarming修改为didReceiveMemoryWarning,后面的warning错打为warming了~
十分感谢解答
2
问题贡献者:김위청
答题大佬:群主
Kingfisher tableview cell
图片刚加载的时候 出现很多一样的图片,然后刷新一下tableview就没事,这样的得怎么处理?
我是用下面这个方法实现的:
imageView.kf_setImageWithURL(NSURL(string: "your_image_url")!,
placeholderImage: nil,
optionsInfo: nil,
progressBlock: { (receivedSize, totalSize) -> () in
println("Download Progress: \(receivedSize)/\(totalSize)") },
completionHandler: { (image, error, imageURL) -> () in
println("Downloaded and set!")
})
作者:smalldu
链接:
https://www.jianshu.com/p/fa2624ac1959
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
试试强制刷新
imageView.kf.setImage(with: url, options: [.forceRefresh])
好的,谢谢,可以了,群主,这个强制刷新是从url里获取然后刷新吗?还是从cacheKey刷新?
强制刷新是从对应key的cache中刷新的。
3.
问题贡献者:Rocky
答题大佬:群主
可能拖动到代码区时落点不对
嗯,调好了,谢谢 !
4.
问题贡献者:风
答题大佬:群主
一直报错,哪位大神帮忙分析下原因,问题背景:我只要在.m文件中添加如下代码,就会报错
TVBrandListModel是在.h中定义的
这种问题一般是导入的第三方类库不支持arm64,还有一种可能是还需要导入其它的依赖库。
有时用这两种方式也可以解决这个问题:
1、清空Xcode缓存文件(~/Library/Developer/Xcode/DerivedData/)
2、Other Linker Flags增加-ObjC或-lz
5.
问题贡献者:诚绅
答题大佬:群主
请各位大神,帮忙解决一个项目的技术问题,非常感谢!
在Main.storyboard里面画的界面,用代码不能改变界面的尺寸,这是为什么?
颜色什么的是可以改变的
试试在viewDidLayoutSubviews或viewDidAppear中修改界面的尺寸,因为viewDidLoad和viewWillAppear都在viewDidLayoutSubviews
和viewDidAppear的后面。
果然可以,谢谢啦@群主
6.
问题贡献者:김위청
答题大佬:群主
一般 iphone 全屏的图片宽度怎么设置呀?宽度和高度怎么设置最好?就是我想填满全屏,不知道怎么设置大小是最好的?
我现在使用的contentModel是ScaleAspectFill
主要设置UIImageView的contentModel属性,ScaleAspectFit或ScaleAspectFill,具体参考
http://www.cnblogs.com/PLA-Artillery/p/5821818.html
通过UIScreen可以获得屏幕的大小
然后把图片缩小? 对吗?
通过UIScreen获取屏幕尺寸,然后将UIImageView设置为全屏大小,接着通过设置contentModel使图片充满图像视图。contentModel包含三种属性参考以下解释:
Scale To Fill那个图片显然一张212*80的图片要放到100*100的视图中,要做的就是宽(212)要缩小到100,高(80)要放大到100,有点感觉像把图片在水平方向挤压似的。
Aspect Fit 这个图片显示真应了fit这个单词,通过放缩将(212,80)图片放入(100,100)的View中这个不用说,问题是与上面的放缩不同在于,它的宽高都是使用同一比例,宽212*0.4717=100,与上面不同,高80*0.4717=37.74,所以图片很真实,尽管缩小了0.4717比率。
Aspect Fill这个就应了Fill单词了,它和Fit不同,要把小的(也就是高80)放大起到填充的感觉,也就是80*1.25=100那么我们的宽212,也要乘以1.25=265,最后得到一个(265,100)的图片,而我们的框框是(100,100),显然我们的视图显示图片余地有限,因此只能显示中间那一部分了。
7.
问题贡献者:김위청
答题大佬:群主
和使用正常故事板一样,添加图片、文字,添加约束。只是无法添加动画效果而已。
那不用这个也可以吧?我现在想用launchimage 设置,但是这里我都设置好了 就是启动就不显示图片
把这个去掉
oK,可以了,另外在请教一下gif图片怎么加载 ?
UIImage(named: "no_img") 我的这个no_img 是gif的,但是不显示这么写的话。
gif动画使用UIImage是无法播放的,你可以使用UIWebView或者将gif的帧转换为图片序号,然后使用UIImageView播放。或者参考《神兵利器》中的
8.
问题贡献者:김위청
答题大佬:appleMan
问下这个审核被拒怎么解决呢?使用Apple Pay的应用程序必须提供隐私政策,否则将会被拒绝
有知道的同学吗?
这里有个隐私政策模板可以参考:
http://www.cnblogs.com/weiboyuan/p/4028690.html
Apple Pay 安全性与隐私政策概览
https://support.apple.com/zh-cn/HT203027
是要给苹果提供一个隐私政策的链接吗?
这个是什么时候开始的?
很早了吧,主要针对 HealthKit,apple key之类的 需要采集用户数据的app
上个月还正常上线呢,这次居然不行,难道审核更严了?
应该是审核人员不同造成的
有可能,这个隐私策略是要配置在app还是配置在iTunes,怎么配置呢?
在一个有效的url上发布隐私声明,在Apple connect应用详情页--隐私声明处加上这个链接。
App内也需要找个地方,例如设置页面、关于页面放置隐私策略。
这个地方吗?
恩,这个之前放置的是我们公司的官网,意思是要在我们的官网上面附加一个隐私声明吗?
在官网上弄个新页面,放用户的隐私政策声明,然后把页面的链接放在这里
9.
问题贡献者:김위청
答题大佬:appleMan
我的这个版本,我上传了1.7和1.8的,为什么这里不显示呀?
如果没有显示,可能没有上传或者上传失败,可以重复上传一次。
navigationItem.title. 字体加粗 怎么设置
参考
https://www.jianshu.com/p/a36d927d2878
可以了,感谢群主大大!
10.
问题贡献者:无骛
答题大佬:appleMan
请问,表格的编辑模式怎么同时进行添加和删除?
你需要手动编写代码实现一下,比如实现一个自定义的单元格,左面有一个按钮,点击按钮时添加或删除单元格,或者使用第三方
MGSwipeTableCell,给左滑右滑按钮设置插入和删除的功能,或其它 自定义的功能。
11.
问题贡献者:回忆满满
答题大佬:appleMan
哪位高手在啊?关于证书的问题,我今天续费了,有效期还是2018年7月份,我需要怎么弄?
重新创建一份证书删除吗?
是的已安装的app不会因为证书问题而无法使用。
我的都没上商店,每年都过期,哈哈哈~
12.
问题贡献者:王源
答题大佬:appleMan
群主,有没有iOS开发中如何调用接口的案例,使用的是HTTPS传输协议
有调用http连接的示例,查看iOS开发从入门到精通的《网络与多线程》,或者神兵利器的《Alamofire》那一章,《Swift入门实例教程》的最后一章也有。
https接口可以参考这个:https://www.coolketang.com/iOS/sign_up.json
Alarmofire的示例代码:
func responseJsonHandler()
{
Alamofire.request("https://www.coolketang.com/iOS/sign_up.json
").responseJSON
{ response in
debugPrint(response)
if let json = response.result.value
{
print("JSON: \(json)")
}
}
}
13.
问题贡献者:zhu
答题大佬:appleMan
swift 是不是不能与c++混编 只能用在.m里面混编 然后在.swift里面调.m里的方法呀?
是的
14.
问题贡献者:王源
答题大佬:appleMan
请问,如何在地图上如何搞一个三级筛选器,有数据接口过来的那种
使用多个UITableView或UIPickerView制作级联菜单,然后放在地图视图的上方。当一个选项被点击时,刷新下一个级别选项的内容。
有例子可以参考一下么
https://www.jianshu.com/p/c806f8acea59
http://www.cocoachina.com/ios/20150626/12264.html
15.
问题贡献者:王源
答题大佬:appleMan
使用的是哪个第三方类库 ?
类似的问题参考:
https://ai.baidu.com/forum/topic/show/497335
https://stackoverflow.com/questions/47802071/xcode-9-ios-11-boringssl-ssl-error-zero-return
16.
问题贡献者:风
答题大佬:群主
自定义蓝色视图(Custom.xib),以灰色view为参照,设置自定义蓝色view的frame。frame总对应不上,求大神指点一二
实现细节如下:
如果使用约束的话,你是使用代码进行约束的,还是在xib中添加约束的?如果没有使用约束,而是使用代码计算frame的话,直接设置蓝色view的frame和深灰色的frame相同即可。
17.
问题贡献者:网易4
答题大佬:群主
我这个oc文件无法倒录。都安装了,奇怪的是上面的不加 "" 这个符号可以。加符号的话不行@群主,可以帮我看下吗?
这么写就是下面这个出错
直接导入NIMKit.h试试
@群主。这样都不行了
你下载这个demo,看demo是怎么导入的
好的,我知道了,谢谢!
18.
问题贡献者:zhu
答题大佬:群主
@群主请问一下 服务器返回的视频链接没有.mp4 用浏览器下载下来是.dms的请问 怎么当成视频播放呢?
确认是dms格式吗?swift可以播放mp4或者流内容,dms的不清楚,需要和服务器那边联系吧,约定好视频的格式。
嗯,好的文件下载下来是这种
19.
问题贡献者:zhu
答题大佬:群主
求高手指点,主界面tabbar有有四个tabItem,即对应四个页面,我点击其中一个tabItem对应的页面中的UIbutton跳转到其他页面
使用的以下语句
self.present(SixteenthViewController(), animated: true, completion: nil)
可是当我再跳转回到主界面时,tabbar自己消失了
用了下面的语句也没有用
ViewController().tabBarController?.hidesBottomBarWhenPushed = false
将ViewController.swift中的self.present(FirstSubViewController(), animated: true, completion: nil)修改为:
self.dismiss(animated: true, completion: nil)即可。
原因是原来的代码是新建一个新的视图控制器,并以模态的方式打开新的视图控制器,并没有返回tab bar controller。所以tab bar 并没有消失,只是没有返回初始视图控制器。使用dismiss方法可以返回初始视图控制器。
好的,谢谢群主
20.
问题贡献者:网易4
答题大佬:群主
@群主 im即时通讯 哪个第三方好?
即时通讯第三方有很多:
https://leancloud.cn/docs/chatkit-ios.html
https://cloud.tencent.com/product/im
云通信IM
https://cloud.tencent.com/product/im
21.
问题贡献者:王源答题大佬:群主
求助,像是这种UI界面该如何实现,就是可以在顶部还可以进行左右滑动的
上面的最新、排行榜使用UIButton实现,并放置在UIScrollView中。
下面的滚动广告使用UIScrollView实现,并设置pageEnabled属性为true。
22.
问题贡献者:网易4
答题大佬:群主
视频加载速度 特别慢 有什么好的办法吗?
1、提升视频所在服务器的带宽
2、降低视频的分辨率,压缩视频的体积
3、将视频的https链接修改为IP链接,避免域名解析的时间
4、将视频文件放在七牛等第三方平台统一管理
降低视频的分辨率 有参考吗?我的是现在保存在自己的服务器上,有没有代码压缩的方法?
参考
https://zh.wikihow.com/%E5%8E%8B%E7%BC%A9%E8%A7%86%E9%A2%91
也可以在线压缩:
https://www.shipinyasuo.com/
没有压缩视频的代码,自己写的话可以参考http://www.111cn.net/sj/iOS/111940.htm
我明白了 ,很全面,谢谢群主。
23.
问题贡献者:网易4
答题大佬:群主
群主,我们教程的最后一节课,32.项目的打包上传和提交审核,在设置应用程序的开发证书时,我弹出的证书列表是Automatic,点击other 后是空的,与您教程中的不一样,如何解决?谢谢!
需要登录http://developer.apple.com/
然后创建开发证书和发布证书,具体步骤请参考我的新书中的这些章节:
谢谢群主!我试试。您新书书名?我想买
多谢支持,第一版已经没货了,第二版书稿已经发给清华大学出版社,应该还需要两个月才能上市. 书名是:iOS移动开发从入门到精通第二版
24.
问题贡献者:网易4
答题大佬:群主 ♚Demonァ浅唱
tabbar 添加提示数字 然后 怎么实施改变呀?
继续设置badgeValue的值即可。
let tabBar = tabViewController.tabBar
let item = tabBar.items![0]
item.badgeValue = "5"
@群主,这个想随时监听,就是服务器有提醒数据的时候,实施改变的话,得在哪里设置呀?
有几种方式,一种是使用Push,苹果的或第三方的都可以。还可以使用基类,在该基类的viewWillAppear中新建一个线程查询数据是否有变化,然后tab view controller中的子控制器都继承这个基类。
我的现在是baseviewcontroller是所有控制机都继承的,我是不是在,这个控制器的viewvillappear中,创建一个线程?
是的当收到数据变化提醒时,判断当前的tab bar item不为空的情况下返回主线程修改badgeValue
@群主 我大概明白了 谢谢群主
这是什么错误呀 是我哪个地方写错了嘛?
可选绑定,就把感叹号改成疑问号
可以了,谢谢两位大神助力@群主@ ♚Demonァ浅唱
一些实用小技巧分享:
(当然也包括小伙伴们刚踩过的坑; )
1.分享人:其乐无穷
有没有已经从事 iOS开发在公司里的大神,能讲进公司的面试是什么样的,求教?
面试了10名开发者后,总结了50道iOS面试题[https://www.jianshu.com/p/79c9a8b9b313
2.分享人:appleMan
刚刚踩坑:iOS12 beta 版闪退(使用友盟分享SDK6.8.0和统计版本5.4.0时必现的闪退)
解决问题:请更新最新包
3.分享人:TachibanaHotaru
Swift 5 will be released in early 2019 https://github.com/apple/swift-evolution/commit/de7727f7dcf7bbfdea6763a87f4c8c534f27406e
4.上传App Store被拒绝(用prefs:root,使App跳转至设置界面)。以前上传都没影响,这次突然不行了,咨询各位大神有替代方案没
这里有解决方案
https://community.apicloud.com/bbs/thread-89207-1-1.html
5.现在是主要便用oc还是swift开发啊?以及java开发初学iOS应该怎么入门和进阶?
swift也学了,语法都还好,但是看一些案例大多数都是oc,所以现在又在学oc了。
Swift开发是趋势,由于在Swift之前已经有大量的iOS开发者,所以目前基本上还是OC和Swift并存的局面。
java开发入门Swift会比较快些,先学习一下Swift语法和iOS日常开发技能,然后再做些实例,通过实战才能真正提高iOS开发技能。
6.咱们的swift教程和Xcode9教程做的很好。在有Objective-C开发经验的情况下,两周时间就全部学完了。很棒
有Objective-C开发经验,的确上手会快很多,但是小白也可以一点点精进,毕竟谁也不是生来就掌握各种技能的
联系我们:
网站:coolketang.com
微信公众号:酷课堂
微信:coolketang001、
QQ:3068527144