คำถามติดแท็ก ios

iOS เป็นระบบปฏิบัติการมือถือที่รันบน Apple iPhone, iPod touch และ iPad ใช้แท็กนี้ [ios] สำหรับคำถามที่เกี่ยวข้องกับการเขียนโปรแกรมบนแพลตฟอร์ม iOS ใช้แท็กที่เกี่ยวข้อง [object-c] และ [swift] สำหรับปัญหาเฉพาะสำหรับภาษาการเขียนโปรแกรมเหล่านั้น

21
แปลงสตอรีบอร์ดจาก iPhone เป็น iPad
ฉันมีiPhoneแอปพลิเคชั่นที่มีกระดานเรื่องราว ตอนนี้ฉันต้องการให้iPadแอปพลิเคชันด้วย ดังนั้นฉันถามฉันว่ามีฟังก์ชั่นที่ช่วยให้ฉันเปลี่ยนiPhoneกระดานเรื่องราวของฉันเป็นiPadกระดานเรื่องราวหรือไม่ จะเฉพาะเจาะจง: มีฟังก์ชั่นที่คล้ายกันหรือมีคู่มือวิธีเดียวหรือไม่
218 ios  iphone  xcode  ipad  storyboard 

8
เป็นไปได้ไหมที่จะอนุญาตให้เรียกใช้ didSet ในระหว่างการกำหนดค่าเริ่มต้นใน Swift
คำถาม เอกสารของ Appleระบุว่า: ผู้สังเกตการณ์ willSet และ didSet จะไม่ถูกเรียกเมื่อคุณสมบัติถูกเริ่มต้นครั้งแรก พวกเขาจะถูกเรียกเฉพาะเมื่อค่าของคุณสมบัติการตั้งค่านอกบริบทการเริ่มต้น เป็นไปได้ไหมที่จะบังคับให้เรียกสิ่งเหล่านี้ในระหว่างการเริ่มต้น? ทำไม? สมมติว่าฉันมีชั้นนี้ class SomeClass { var someProperty: AnyObject { didSet { doStuff() } } init(someProperty: AnyObject) { self.someProperty = someProperty doStuff() } func doStuff() { // do stuff now that someProperty is set } } ฉันสร้างวิธีการdoStuffเพื่อให้การประมวลผลมีความกระชับมากขึ้น แต่ฉันต้องการเพียงแค่ประมวลผลคุณสมบัติภายในdidSetฟังก์ชัน มีวิธีบังคับให้สิ่งนี้เรียกในระหว่างการเริ่มต้นหรือไม่? ปรับปรุง ฉันตัดสินใจที่จะลบเครื่องมืออำนวยความสะดวกสำหรับชั้นเรียนของฉันและบังคับให้คุณตั้งค่าคุณสมบัติหลังจากเริ่มต้น …
217 ios  swift  didset 

30
ย้ายฟิลด์ข้อความเมื่อคีย์บอร์ดปรากฏอย่างรวดเร็ว
ฉันใช้ Swift สำหรับการวางโปรแกรมกับ iOS และฉันใช้รหัสนี้เพื่อย้ายUITextFieldแต่มันใช้งานไม่ได้ ฉันเรียกใช้ฟังก์ชันkeyboardWillShowได้อย่างถูกต้อง แต่ฟิลด์ข้อความไม่ขยับ ฉันกำลังใช้การชำระอัตโนมัติ override func viewDidLoad() { super.viewDidLoad() NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillShow:"), name:UIKeyboardWillShowNotification, object: nil); NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillHide:"), name:UIKeyboardWillHideNotification, object: nil); } deinit { NSNotificationCenter.defaultCenter().removeObserver(self); } func keyboardWillShow(notification: NSNotification) { if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.CGRectValue() { //let contentInsets = UIEdgeInsets(top: 0, left: 0, bottom: …

7
จะตรวจสอบว่ามีไฟล์อยู่ในโฟลเดอร์เอกสารได้อย่างไร?
ฉันมีแอปพลิเคชันพร้อม In-App Purchase ซึ่งเมื่อผู้ใช้ซื้อบางอย่างให้ดาวน์โหลดไฟล์ html หนึ่งไฟล์ลงในโฟลเดอร์เอกสารของแอปของฉัน ตอนนี้ฉันต้องตรวจสอบว่าไฟล์ HTML นี้มีอยู่หรือไม่ดังนั้นถ้าเป็นจริงให้โหลดไฟล์ HTML นี้มิฉะนั้นโหลดหน้า html เริ่มต้นของฉัน ฉันจะทำสิ่งนั้นได้อย่างไร ด้วยNSFileManagerฉันไม่สามารถออกไปข้างนอกmainBundle..

6
ในกระดานเรื่องราวฉันจะสร้างเซลล์แบบกำหนดเองสำหรับใช้กับตัวควบคุมหลายตัวได้อย่างไร
ฉันกำลังพยายามใช้กระดานเรื่องราวในแอปที่ฉันกำลังทำงานอยู่ ในแอพนี้มีรายการและผู้ใช้และแต่ละรายการมีชุดสะสมอื่น ๆ (สมาชิกของรายการรายการที่ผู้ใช้เป็นเจ้าของ) ดังนั้นฉันมีListCellและUserCellชั้นเรียน เป้าหมายคือการให้ผู้ใช้สามารถใช้งานซ้ำได้ทั่วทั้งแอพ (เช่นในตัวควบคุม tableview ของฉัน) นั่นคือสิ่งที่ฉันกำลังประสบปัญหา ฉันจะสร้างเซลล์ tableview ที่กำหนดเองในสตอรี่บอร์ดที่สามารถนำกลับมาใช้ใหม่ได้ในตัวควบคุมมุมมองใด ๆ นี่คือสิ่งเฉพาะที่ฉันได้ลองไปแล้ว ใน Controller # 1 เพิ่มเซลล์ต้นแบบตั้งค่าคลาสเป็นUITableViewCellคลาสย่อยของฉันตั้งค่ารหัสนำมาใช้ใหม่เพิ่มป้ายชื่อและต่อสายเข้ากับช่องเสียบของชั้นเรียน ใน Controller # 2 เพิ่มเซลล์ต้นแบบที่ว่างเปล่าตั้งเป็นคลาสเดียวกันและใช้รหัสซ้ำเหมือนเดิม เมื่อมันทำงานป้ายกำกับจะไม่ปรากฏขึ้นเมื่อมีการแสดงเซลล์ในตัวควบคุม # 2 ทำงานได้ดีใน Controller # 1 ออกแบบแต่ละชนิดของเซลล์ใน NIB ที่แตกต่างกันและต่อสายเข้ากับระดับเซลล์ที่เหมาะสม ในกระดานเรื่องราวเพิ่มเซลล์ต้นแบบที่ว่างเปล่าและตั้งค่าคลาสและใช้รหัสซ้ำเพื่ออ้างอิงถึงชั้นเซลล์ ในviewDidLoadวิธีการของตัวควบคุมให้ลงทะเบียนไฟล์ NIB เหล่านั้นสำหรับรหัสที่ใช้ซ้ำ เมื่อแสดงเซลล์ในตัวควบคุมทั้งสองจะว่างเปล่าเหมือนต้นแบบ เก็บต้นแบบในตัวควบคุมทั้งสองว่างและตั้งค่าคลาสและใช้ id ซ้ำกับคลาสเซลล์ของฉัน สร้าง UI ของเซลล์ทั้งหมดในโค้ด เซลล์ทำงานอย่างสมบูรณ์แบบในตัวควบคุมทั้งหมด ในกรณีที่สองฉันสงสัยว่าต้นแบบจะมีผลเหนือกว่า NIB เสมอและถ้าฉันฆ่าเซลล์ต้นแบบการลงทะเบียน …

4
การเพิ่มขนาดมาสก์อัตโนมัติโดยทางโปรแกรมเทียบกับ Interface Builder / xib / nib
ฉันอยู่ในสมมติฐาน (อาจเป็นเท็จ) ว่าการเปิดใช้งานตัวบ่งชี้ระยะขอบขวาใน xib เทียบเท่ากับการใช้UIViewAutoresizingFlexibleLeftMarginรหัสภายในและอื่น ๆ ดังนั้นฉันเคยคิดตามภาพรวมนี้: ต่อมาวันนี้ฉันต้องข้ามการตรวจสอบและสะดุดกับหัวข้อนี้ และเอกสารประกอบของแอปเปิลมีสิทธิ์ในส่วนที่มีชื่อเรื่อง - "การจัดการเลย์เอาท์การเปลี่ยนแปลงโดยอัตโนมัติโดยใช้กฎการเพิ่มขนาดอัตโนมัติ" ในลิงค์นี้: https://developer.apple.com/library/content/documentation/WindowsViews/Conceptual/ViewPG_iPhoneOS/CreatingViews/ CreatingViews.html ดังนั้นตอนนี้ฉันจึงมีแนวคิดใหม่ในใจของฉันเกี่ยวกับวิธีการตั้งค่ามาสก์การเปลี่ยนขนาดอัตโนมัติโดยทางโปรแกรมให้เทียบเท่ากับการตั้งค่า xib: สถานการณ์ที่ 1 : การตั้งค่าเท่านั้น(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight)เทียบเท่ากับ: ใน XIB? สถานการณ์ที่ 2 : การตั้งค่า(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin)ในรหัสเทียบเท่ากับ: ใน XIB? 2 สถานการณ์ที่ต่ออายุของฉันถูกต้องหรือไม่ ตอนนี้ฉันเข้าใจแล้วหรือยัง?

7
แอปพลิเคชัน WillEnterForeground vs. applicationDidBecomeActive, แอปพลิเคชัน WillResignActive กับ applicationDidEnterBackground
ผู้รับมอบสิทธิ์ที่เหมาะสมที่จะใช้งานเมื่อแอปพลิเคชันตื่นขึ้นมาจากพื้นหลังและคุณต้องการให้แอปพลิเคชันเตรียมใช้งานอยู่ applicationWillEnterForeground vs applicationDidBecomeActive - ความแตกต่างคืออะไร ผู้รับมอบสิทธิ์ที่เหมาะสมที่จะใช้งานเมื่อแอปพลิเคชันกำลังจะเข้าสู่โหมดสลีปและคุณต้องการจัดเตรียมแอปพลิเคชันเพื่อล้างข้อมูลและบันทึกข้อมูล applicationWillResignActive vs. applicationDidEnterBackground - ความแตกต่างคืออะไร นอกจากนี้ฉันยังสังเกตเห็นว่า applicationWillResignActive ได้รับการโทรเมื่อมี SMS เข้ามาหรือโทรเข้ามา แต่ผู้ใช้เลือกที่จะคลิกตกลงและดำเนินการต่อ ฉันไม่ต้องการให้แอปดำเนินการใด ๆ ในกรณีเหล่านี้ ฉันแค่ต้องการให้มันทำงานต่อไปโดยไม่ต้องล้างข้อมูลกลางใด ๆ เนื่องจากผู้ใช้ไม่ได้ออกจากแอป ดังนั้นฉันคิดว่ามันเหมาะสมกว่าที่จะทำการล้างข้อมูลในแอปพลิเคชัน DidEnterBackground ฉันขอขอบคุณที่คุณป้อนข้อมูลเกี่ยวกับแนวทางปฏิบัติที่ดีที่สุดเพื่อเลือกผู้ได้รับมอบหมายที่จะตื่นขึ้นและเข้านอนรวมถึงการพิจารณาเหตุการณ์ที่ถูกขัดจังหวะด้วย SMS / การโทร ขอบคุณ

15
วิธีเปิด Safari และเปิด URL จากแอพ iOS
ในหน้าการตั้งค่าฉันต้องการรวมสามลิงก์ไปยัง ไซต์สนับสนุนแอพของฉัน บทแนะนำแอป YouTube ไซต์หลักของฉัน (เช่น: เชื่อมโยงกับป้ายกำกับ 'สร้างโดย Dale Dietrich') ฉันค้นหาเว็บไซต์นี้และเว็บและเอกสารของฉันแล้วและฉันไม่พบสิ่งใดที่ชัดเจน หมายเหตุ:ฉันไม่ต้องการเปิดหน้าเว็บภายในแอพของฉัน ฉันแค่ต้องการส่งลิงค์ไปที่ Safari และลิงค์นั้นจะเปิดอยู่ที่นั่น ฉันได้เห็นแอพจำนวนมากที่ทำสิ่งเดียวกันในหน้าการตั้งค่าของพวกเขาดังนั้นมันจึงเป็นไปได้
215 ios  url  mobile-safari 

6
ปุ่มใส่สไตล์สำหรับ iPad และ iPhone
ฉันใช้ CSS เพื่อกำหนดลักษณะปุ่มอินพุตบนเว็บไซต์ของฉัน แต่ในอุปกรณ์ IOS การใส่สไตล์จะถูกแทนที่ด้วยปุ่มเริ่มต้นของ Mac มีวิธีการสไตล์ปุ่มสำหรับ iOS หรือวิธีที่จะทำให้การเชื่อมโยงหลายมิติที่มีลักษณะเหมือนปุ่มส่งหรือไม่?
215 iphone  css  ios  ipad 

8
ITSAppUsesNonExemptEncryption ส่งออกการปฏิบัติตามข้อกำหนดขณะทดสอบภายใน?
ฉันได้รับข้อความนี้ขณะที่เลือกสร้างสำหรับการทดสอบภายในฉันบอกว่าเกี่ยวกับการตั้งค่าITSAppUsesNonExemptEncryptionใน info.plist มันหมายถึงอะไร? จำเป็นหรือไม่

5
@ เก็บรักษามอบหมายสำเนา nonatomic ใน Objective-C
ในฐานะที่เป็นคนใหม่สำหรับ Objective-C ใครบางคนสามารถให้ภาพรวมของการเก็บรักษามอบหมายคัดลอกและอื่น ๆ ที่ฉันหายไปซึ่งเป็นไปตามคำสั่ง @property หรือไม่ พวกเขากำลังทำอะไรและทำไมฉันจึงต้องการใช้งานมากกว่ากัน

13
แป้นพิมพ์ iPad จะไม่ยกเลิกหากรูปแบบการนำเสนอ ViewController เป็นกิริยาช่วยเป็น UIModalPresentationFormSheet
บันทึก: ดูคำตอบที่ยอมรับ (ไม่ได้รับการโหวตสูงสุด) สำหรับวิธีแก้ปัญหาตั้งแต่ iOS 4.3 นี้คำถามที่เป็นเรื่องเกี่ยวกับพฤติกรรมที่พบในแป้นพิมพ์ iPad ที่จะปฏิเสธที่จะถูกไล่ออกถ้าแสดงในกิริยาโต้ตอบกับตัวควบคุมนำทาง โดยทั่วไปถ้าฉันแสดงตัวควบคุมการนำทางด้วยบรรทัดต่อไปนี้: navigationController.modalPresentationStyle = UIModalPresentationFormSheet; แป้นพิมพ์ปฏิเสธที่จะถูกไล่ออก หากฉันใส่ความคิดเห็นในบรรทัดนี้แป้นพิมพ์ก็หายไป ... ฉันมีสองฟิลด์ข้อความชื่อผู้ใช้และรหัสผ่าน ชื่อผู้ใช้มีปุ่มถัดไปและรหัสผ่านมีปุ่มเสร็จสิ้น แป้นพิมพ์จะไม่หายไปหากฉันนำเสนอสิ่งนี้ในตัวควบคุมการนำทางแบบโมดอล WORKS broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil]; [self.view addSubview:b.view]; ไม่ทำงาน, ไม่เป็นผล broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil]; UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:b]; navigationController.modalPresentationStyle = UIModalPresentationFormSheet; navigationController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; …

20
จะซ่อนแป้นพิมพ์อย่างรวดเร็วในการกดปุ่มย้อนกลับได้อย่างไร
ฉันกำลังใช้UITextfiedในขณะที่คลิกที่แป้นพิมพ์แบบข้อความปรากฏขึ้น แต่เมื่อฉันกดreturnปุ่มแป้นพิมพ์จะไม่หายไป ฉันใช้รหัสต่อไปนี้: func textFieldShouldReturn(textField: UITextField!) -> Bool // called when 'return' key pressed. return NO to ignore. { return true; } วิธีการที่ลาออกก่อนหน้าการตอบกลับไม่ได้อยู่ในฟังก์ชัน
214 ios  swift  uitextfield 

19
จะยกเลิก ViewController ใน Swift ได้อย่างไร
ฉันพยายามยกเลิก ViewController อย่างรวดเร็วด้วยการโทรdismissViewControllerหาIBAction @IBAction func cancel(sender: AnyObject) { self.dismissViewControllerAnimated(false, completion: nil) println("cancel") } @IBAction func done(sender: AnyObject) { self.dismissViewControllerAnimated(false, completion: nil) println("done") } ฉันเห็นข้อความ println ในเอาต์พุตคอนโซล แต่ ViewController ไม่เคยถูกไล่ออก มีปัญหาอะไร

30
ตัวโหลดแอปพลิเคชันติดอยู่ที่“ การรับรองความถูกต้องกับร้านค้า iTunes” เมื่ออัปโหลดแอป iOS
เราพยายามส่งแอปไปยัง iTunes store โดยใช้ Application Loader เป็นเวลาสามวันและติดค้างที่ขั้นตอน"การรับรองความถูกต้องกับ iTunes Store" เราได้อ่านฟอรัมมากมาย (รวมถึง stackoverflow) และลองสิ่งที่แนะนำ: สร้างโปรไฟล์การจัดสรรใหม่ ใช้ Application Loader ที่แตกต่างกันหรือหลายรุ่น เปลี่ยนการตั้งค่าพร็อกซี รีบูตเครื่อง Mac อัปโหลดในเวลาอื่นของวัน ฯลฯ เราปล่อยให้มันทำงานข้ามคืนและไม่ประสบความสำเร็จในการผ่านขั้นตอนนี้ น่าเสียดายที่ไม่มีข้อเสนอแนะใด ๆ เกี่ยวกับปัญหาที่อาจเกิดขึ้นและเราไม่ได้รับข้อความแสดงข้อผิดพลาดใด ๆ เราได้ส่งแอพพลิเคชั่นหลายตัวโดยที่ไม่ลำบากในอดีต แต่ตอนนี้ติดขัดแล้ว! คุณสามารถแก้ไขได้อย่างไร

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.