像“今日頭條”這樣的模塊滑動特效,大概咋寫,求指點 ?---酷課堂iOS交流羣問答整理(201805期)

酷課堂iOS交流羣

 

我們是一個什麼樣的組織:

酷課堂iOS交流羣,聚集了一羣熱愛技術、有趣、有料,平均Q齡在10年以上的“老司機”,他們遍佈在全國/球各地,有知名企業iOS工程師、高校大學生、自由職業者……如果你也是這樣的人,歡迎加入我們,一起暢聊iOS技術及周邊。

“很乾”

“很佛系”

每晚11點後熄燈(禁言),只聊技術,幾乎不閒聊。

IT從業者自學成功的不少,但從入門到放棄的人更多。一個人走的快,一羣人走的遠,希望你會是堅持到最後的那一波,希望我們可以一起相伴走的更遠一些。

 

付費學員專享福利:

(額外福利,不承諾永久提供!)

1.爲了更好的交流,我們開設了QQ羣

2.已購買課程的同學,請添加小課微信號:coolketang001、QQ:3068527144

3.截圖訂單號,即可獲取對應QQ羣號,及免費練習源碼。

(蘋果商店的訂單號,可在購買賬號綁定的郵箱中找到)

                                                                             
1、tabbar點擊的時候,怎麼傳值呀?

問題貢獻者:김위청
答題大佬:羣主
方法1:通過tabBarController.viewControllers[索引]獲得指定索引的控件器,再進行賦值。
方法2:首先將數據保存到UserDefaults,然後在另一個子控制器中讀取UserDefaults中存儲的值。
方法3:將數據保存在AppDelegate.swift中的一個屬性中,然後在另一個子控制器中讀取AppDelegate屬性中存儲的值。
方法4:使用通知/委託。



2、pod install之前,target Membersgip裏面的兩個target(Dev、NewEBPP)都勾選上關聯了類庫,但是pod install之後,之前的關聯就會被取消了,得手動去關聯類庫對應的target,您看有什麼解決辦法嗎? 

問題貢獻者:appleMan 
答題大佬:羣主/ appleMan





是不是memebership type的原因,參考這個帖子看看https://github.com/CocoaPods/Xcodeproj/issues/222


我看下,創建的組件是私有的,集成到項目後我手動勾選關聯到target,然後pod install就會自動取消關聯了,然後又需要手動去關聯到target
問題解決了,原來還要在工程中去配置一下參數


這裏分享一下,我是如何解決關聯類庫問題的。
GCC_PREPROCESSOR_DEFINITIONS
HEADER_SEARCH_PATHS
OTHER_LDFLAGS以上都是在build setting中查找,在Debug和Release中添加$(inherited)
因爲每次pod install後都會有黃色的警告,我之前沒注意
 
可以參考下這個https://www.jianshu.com/p/d464a9254a1f


原來是這樣解決的,主要是根據黃色的警告文字,然後在build setting中找到警告對應的地方,再增加$(inherited)。多謝分享~


恩恩,也就是工程中沒有配置頭文件的搜索路徑,所以會出現這個問題吧
我現在的項目從開始到目前爲止都沒有用cocoapods做包管理,現階段我做組件化要用到cocoapods,所以也踩了不少的坑
Xcode中的$(inherited)的含義https://www.crifan.com/xcode_inherited_meaning/



3、像“今日頭條”這樣的模塊滑動特效,大概咋寫,求指點 ?

問題貢獻者:無騖/神奇的海螺
答題大佬:羣主/賴着





UICollectionView支持多種佈局模式,試試UICollectionView的Cover Flow佈局






UICollectionView和UITableView有什麼區別?是用來取代UITableView的嗎?


這個swift製作的輪播圖效果 似乎跟你要的一樣 但不知道你能不能打開youtube  https://youtu.be/iafSFDlr7g4,打不開的話 就掛個VPN了@無騖
 


4、這部分怎麼做,有沒有資料可以瞅瞅啊 ! 

答題大佬:羣主 


參考資料:https://www.jianshu.com/p/5b679538f585
 


5、我想拷貝一個值,然後在另外一個app粘貼的那種拷貝,不太清楚具體的方法?

問題貢獻者:김위청
答題大佬:羣主 
實現方式有兩種
方式一:Drag和UIPasteConfiguration
方式二:Drag and Drop
 




6、創建XIB的cell,XIB的控件顯示的是nil啊?


問題貢獻者:神奇的海螺
答題大佬:羣主
那就使用代碼自定義cell吧,比較簡單些, 詳情參考《iOS開發中的神兵利器》的第二章第一節,代碼如下:




7、請問卷曲動畫怎麼添加不同圖片?我寫數組它說不允許。

問題貢獻者:無騖
答題大佬:羣主

捲曲動畫是虛像,並不會影響操作的視圖。如果需要在捲曲時切換不同的圖片,最好使用幀動畫實現。




8、值打印出來帶some=() 是什麼情況,我發現接口提交時url多出了好多some(),   actualNumberMeetings=some(%22%22)  

問題貢獻者: 月光
答題大佬:羣主



Optional類型是一個枚舉,當Optional沒有值時,返回的nil其實就是Optional.None,即沒有值。除了None以外,還有一個Some,當有值時就是被Some<T>包裝的真正的值,所以我們拆包的動作其實就是將Some裏面的值取出來。
如果不顯示some,則在變量定時時使用!,如var str: String! = "CoolKeTang",或者在print時加!,如print(str!)
 


9、請問各位:iphoneX怎麼適配呀?

問題貢獻者: 新手
答題大佬:羣主


先和適配其它機型一樣適配iPhoneX,然後在針對 iPhoneX進行測試,遇到奇怪的問題可以拿來討論。先發三個不錯的適配參考文章,你會對iPhoneX適配有裏有些底:
https://blog.csdn.net/chenyblog/article/details/77987751 


https://www.jianshu.com/p/a4e778c2236e 
https://blog.csdn.net/qq_27080247/article/details/78665450 



10、CollectionView 只想刷新 headerview. 部分,有辦法嗎?

只想刷新這部分的代碼。
問題貢獻者: 김위청
答題大佬:羣主



是刷新尺寸還是內容,具體可以參考這個:https://blog.csdn.net/u012661893/article/details/52172146 



11、我在tableviewCell裏,寫了兩個樣式互換的 ,
但是這個有些cell裏無法正常顯示,是什麼問題呀?

問題貢獻者: 김위청
答題大佬:羣主



switch語句應該是在cellForRowAt方法中的吧,這個問題應該是存在N和Y之外的情況造成的,你修改爲if(folloChk == "N"){cell.btnFollower()}else{cell.btnFolloin}試試。
 


12、請問,可不可以在含有控件的ViewController裏添加動態背景效果?

問題貢獻者: 無騖
答題大佬:羣主

是的,可以使用製作幀動畫或其它線性動畫,然後放在所有視圖的底部
 


13、請教一下,有沒有iOS遊戲開發方面的書籍推薦呢?就是有一個想法,實際上是想做一個相當於iOS上的社交軟件,就是如果把做成遊戲方面應該會更具有吸引力,雖然現在遊戲用U3d的多,如果在xcode裏面的話,應該也是可以的吧?

問題貢獻者:王源
答題大佬:羣主


用u3d輸出各平臺時選iOS平臺,這樣就可以將項目輸出爲Xcode項目了。除了u3d還可以使用cocos2d或cocos2dx,也可以使用蘋果自己的SpriteKit來製作遊戲。
 

 


14、爲什麼我做出來的 uiscrollView 底下沒有小白點?
可以使用svg格式的圖標嗎?

問題貢獻者:He
答題大佬:羣主





換個模擬器試試。Xcode9支持矢量圖標
svg沒試過,PDF的可以.使用開源類庫可以使用svg格式的圖片,參考神兵利器中的這節課。
 


15、對象的地址和對象本身有什麼區別啊?

問題貢獻者:風
答題大佬:羣主

對象的地址是對象存儲在內存中的位置,對象本身是具有屬性和方法的某個類的實例。
在Swift中可以獲得對象本身在內存中的地址:
var site = "coolketang.com 


"
withUnsafePointer(to: &site) { print(">>>>\($0)") }
 


16、想問大家一個問題,就是我想用xcode 編寫APP時把當前所有東西保存下來,打包成一個版本或者什麼的,然後繼續在這個上編寫代碼,該怎麼保存呢?

問題貢獻者: 王源
答題大佬:羣主/ C


用git吧
可以使用基於git的github管理源碼的版本,可以設置爲公開或私密。
 


17、Document Type下的內容怎麼刪除?求大神指點!

問題貢獻者:風 
答題大佬:羣主



無法上架,編輯info.plist文件就行了,@風 

 


18、以前導入的pod文件怎麼不見了,源文件是有的,打開之後卻沒有顯示
拖也拖不進去。打開別的項目是可以顯示的。

問題貢獻者:King
答題大佬:羣主/ C


檢查 是不是Xcode左下角的過濾框裏輸入了過濾關鍵詞。


19、swift開發中是純代碼開發比較好還是使用故事版?

問題貢獻者:神奇的海螺
答題大佬:羣主/ C



如果和夥伴一起開發,則需要溝通確定用哪個。其它情況如果追求非常高的性能則使用代碼,如果追求開發效率則用故事板。
Xcode9教程中有專門講解故事板使用的。
 


20、利用oc特性無埋點統計http://www.cocoachina.com/ios/20180424/23149.html 
還有沒有更好的無埋點統計呢?
又是runtimehttp://www.cocoachina.com/ios/20180424/23150.html 

問題貢獻者:appleMan
答題大佬:羣主/ C



App統計常用的Flurry、友盟、Google Analytics應該都支持無埋點統計,蘋果自身也會統計App的使用情況,不過由於需要用戶勾選支持開發者選項,所以統計的不夠全面。


一直在用友盟的埋點統計,一會我再去研究下它的無埋點,謝謝@羣主 
 

 


21、哪個教程裏有在手機裏輸入文字,然後保存,下一次還可以通過手機訪問的教程呀?就像筆記軟件一樣。或者說有沒有關於輸入框的教程?

問題貢獻者:He
答題大佬:羣主/ C


使用UITextField+UserDefaults就行了
《Xcode9從入門到精通》課程中有單獨講解UITextField和UserDefaults的使用。
 


22、弱弱的問下,storyboard能給控件設置漸變色嗎?

問題貢獻者:曉書
答題大佬:羣主/ C


給控件綁定一個自定義的view,在自定義view裏設置漸變層。
 

 


23、請問一下 這是我的頁面代碼 member是 會員變量 我想請問  我這個會員的變量怎麼設置 才能在另外一個頁面上修改 這個頁面的變量一樣可以更新呀
現在是 我在別的頁面更新會員變量在這裏也不起效

問題貢獻者:김위청
答題大佬:羣主/ appleMan



用通知試下


通知? 怎麼試呀?


用通知,或者將MypageController對象作爲另一個頁面的屬性,記得使用weak關鍵詞
可以參考《Swift4入門實例教程》中的第8章的前面幾節課。
 


24、怎樣在其中一個cell裏添加點擊事件,一定要加botton嗎?
就是在點擊後出現一個文本框描述

問題貢獻者:無騖
答題大佬:羣主/ appleMan


添加button或者使用didSelectRowAt代理方法
 


25、請問如何實時獲取用戶的在線狀態啊,以及讓服務端知道在線人數,和在線狀態。要用長鏈接嗎?

問題貢獻者:zhu
答題大佬:羣主/73



你就算用長鏈接,也需要心跳包來確定啊!

制定策略啊,比如用戶5分鐘內有請求,就判斷爲在線
簡單的做法:用戶調用登陸接口時,服務器記錄用戶在線狀態。心跳就是定個時間間隔向服務器發送請求,說明自己仍然在線。否則不在線,或者調用登出接口也不在線。服務器統計在線狀態的用戶數量即可。
專業的做法是需要學習一下iOS的XMPP開發,可擴展消息與存在協議,可以在網上找到學習資料。
 

 


26、請教一個問題,有沒有逆地理編碼的課,我將經緯度轉成地址老是出錯?
參考《Xcode從入門到精通》第62課:將地理座標轉換成實際地名

問題貢獻者:King
答疑大佬:羣主
 

 


27、問個事,就是FFmpeg這個工具如果集成到ios裏面的調用有沒有這方面的資料,我是想知道,這樣ios寫的應用可以直接分割切片嗎?

問題貢獻者: Feeling
答題大佬:
獨立的命令直接調用看到有例子寫了不少但是集成進工程後怎麼調用比較少資料好像

關於FFmpeg的資料比較少哦,這幾條資料感覺還可以:
https://blog.csdn.net/leixiaohua1020/article/details/47071547
https://github.com/chrisballinger/FFmpeg-iOS
http://www.cocoachina.com/ios/20150514/11827.html


謝了,裏面翻出來,感覺這個是我要找的,代碼比較難懂要是swift的多好
 

 


28、
我這個搜索值是出來了。但是 鍵盤一直顯示 怎麼讓鍵盤收回

問題貢獻者: 김위청
答題大佬:羣主


UISearchBar的鍵盤收回有這幾種方式:
https://blog.csdn.net/lianbaixue/article/details/8218075
https://www.jianshu.com/p/9c7eefbac989
@羣主 這個有用swfit 寫的嗎? 
有的:https://blog.csdn.net/potato512/article/details/52709696
searchbar.resignFirstResponder()  
searchbar.endEditing(true)


self.view endEditing 那什麼方法嗎
相當於self.view.endEditing(true)
這麼看我明白了  

 



29、羣主大大,沒有做過經緯度軌跡糾偏的算法呀,高德自帶的只支持駕車的環境,網上也看了一些,羣主有沒有呀,分享一下哇 

問題貢獻者:zhu
答題大佬:羣主



網上有關於百度地圖和高德地圖的糾偏資料,請參考:
https://blog.csdn.net/louyxlovess/article/details/53379556
http://www.cnblogs.com/milkmap/p/3627940.html
https://blog.csdn.net/gatr/article/details/9569189

 



30、@酷課堂 Swift項目,首次編譯時間8分鐘左右。編譯時間可以縮短嗎?

問題貢獻者: 誠紳
答題大佬:羣主
@酷課堂 Swift項目,首次編譯時間8分鐘左右。編譯時間可以縮短嗎?


首次編譯時間8分鐘是有些長了,編譯時間是由項目內容的多少和機器的配置決定的,如果項目內容無法刪減,就只能升級機器配置了。
MacBook Pro2015款的(另外,我同事MacBook Pro是17款的,編譯的時間也和我差不多)
除了刪減內容還有其他辦法嗎?


還有一些技巧可以參考:
https://juejin.im/post/5ad33a086fb9a028cf32ebe1


因爲這是二次開發項目,刪減代碼和優化代碼工作量都比較大,不可行。其他全模塊優化什麼的都做了。編譯時間還是那樣。Objective-C項目的編譯時間就很短呀!


Swift 編譯器在保證運行時安全方面做的挺好,但是它的編譯時間要比 Objective-C 編譯時間長很多。Swift的類型推斷和重載等新特性,都會消耗更多的編譯時間。在不優化代碼的情況下,目前貌似沒有比較好的編譯時間優化方案。隨着Swift版本升級,希望能夠提高它的編譯效率吧。

 



分享一些實用小技巧:

1.uisearbar隱藏鍵盤,可以參考:
https://blog.csdn.net/lianbaixue/article/details/8218075
https://www.jianshu.com/p/9c7eefbac989


2. Xcode9.0寫Swift的CGRect怎麼那麼難?
CGRect(x: x, y:y, width:w, height:h),括號裏面的參數名還要一個個敲出來
輸入CGRect(,然後Xcode會彈出提示,在提示列表中選擇CGRect模板就可以了。


非常感謝,原來還可以這樣操作,昨天找了半天沒弄出來,直接封裝成一個忽略顯示參數的方法了。


3. 上傳App Store被拒絕(用prefs:root,使App跳轉至設置界面)。以前上傳都沒影響,這次突然不行了,諮詢各位大神有替代方案沒?



這裏有解決方案https://community.apicloud.com/bbs/thread-89207-1-1.html




更多資訊:
1.程序員面試中,有些問題要這樣答
https://www.jianshu.com/p/64c4af868137 


2.眼巴巴的WWDC2018願望清單http://coolketang.com/staticIOS/5b00d13c9f54540044d1ed4e.html


3.如何做一個優雅的程序員
http://coolketang.com/staticIOS/5afe244ca22b9d0044a116c7.html 


4.2018 iOS 面試法寶+絕密文件http://coolketang.com/staticIOS/5aa717b89f545400455f3180.html 


5.開發者將《午夜兇鈴》與 ARKit 結合,把貞子帶到你面前
http://coolketang.com/staticIOS/5a8f82bbac502e0032ba7516.html 


6.UDP只能發送,接收不會寫,這裏有很多UDP相關的開源項目:
https://github.com/matzpersson/swift-udp
https://github.com/search?utf8=%E2%9C%93&q=swift+udp&type=

 

以上內容由@小課001爬樓整理,希望小夥伴的這些提問,對你有幫助/啓發,感謝資源貢獻者:Mi~/appleMan/賴着/蔣哥
精選在此,喜歡請收藏,給答題的各位大佬點贊!

酷課堂iOS交流羣,聚集了一羣熱愛技術、有趣、有料,平均Q齡在10年以上的“老司機”,他們遍佈在全國/球各地,有知名企業iOS工程師、高校大學生、自由職業者……如果你也是這樣的人,歡迎加入我們一起暢聊iOS技術及周邊。

 

 

 

 

來酷課堂,手把手帶你學開發

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章