คำถามติดแท็ก interface-builder

Interface Builder เป็นเครื่องมือออกแบบภาพที่ใช้สร้างอินเทอร์เฟซผู้ใช้สำหรับแพลตฟอร์ม macOS และ iOS ของ Apple

10
IBOutlet และ IBAction
วัตถุประสงค์ของการใช้ IBOutlets และ IBActions ใน Xcode และ Interface Builder คืออะไร มันสร้างความแตกต่างหรือไม่ถ้าฉันไม่ใช้ IBOutlets และ IBActions สวิฟท์: @IBOutlet weak var textField: UITextField! @IBAction func buttonPressed(_ sender: Any) { /* ... */ } Objective-C: @property (nonatomic, weak) IBOutlet UITextField *textField; - (IBAction)buttonPressed:(id)sender { /* ... */ }

21
@ ข้อผิดพลาดที่สามารถออกแบบได้: IB Designables: ไม่สามารถอัปเดตสถานะการจัดวางอัตโนมัติ: Interface Builder Cocoa Touch Tool ขัดข้อง
ฉันมีคลาสย่อยที่ง่ายมากของ UITextView ที่เพิ่มฟังก์ชัน "Placeholder" ที่คุณสามารถหาค่าเนทิฟไปยังวัตถุ Text Field นี่คือรหัสของฉันสำหรับคลาสย่อย: import UIKit import Foundation @IBDesignable class PlaceholderTextView: UITextView, UITextViewDelegate { @IBInspectable var placeholder: String = "" { didSet { setPlaceholderText() } } private let placeholderColor: UIColor = UIColor.lightGrayColor() private var textColorCache: UIColor! override init(frame: CGRect) { super.init(frame: frame) self.delegate = self } …

13
Xcode 9 - "ข้อ จำกัด ความกว้างคงที่อาจทำให้การตัด" และคำเตือนการแปลภาษาท้องถิ่นอื่น ๆ
ฉันดาวน์โหลด Xcode ใหม่และในเครื่องมือสร้างอินเทอร์เฟซฉันมีปัญหามากมายเกี่ยวกับคำเตือนที่พูดถึงสิ่งต่าง ๆ เช่น: ข้อ จำกัด ความกว้างคงที่อาจทำให้เกิดการตัด ดูเหมือนว่านี้: ฉันมีการแปลหลายภาษาและฉันเข้าใจคำเตือนว่าในภาษาอื่นขนาดของป้ายกำกับอาจมีการเปลี่ยนแปลง แต่แอปของฉันไม่มีปัญหานี้ ฉันวิ่งและทดสอบใน Xcode 8 เมื่อวานมันก็ดี ฉันไม่ต้องการที่จะใช้จ่ายชั่วโมงและชั่วโมงเพิ่มข้อ จำกัด ใหม่ไม่มีจุดหมาย มีคำแนะนำใดบ้าง?

7
เหตุใดเต้าเสียบของ UICollectionViewCell จึงไม่มี
ฉันได้สร้าง UICollectionViewCell ที่กำหนดเองในตัวสร้างส่วนต่อประสานมุมมองที่ถูกผูกไว้กับคลาสและจากนั้นเมื่อฉันต้องการใช้และตั้งค่าสตริงเป็นป้ายกำกับบนสตริงฉลาก tha มีค่าเป็นศูนย์ override func viewDidLoad() { super.viewDidLoad() // Register cell classes self.collectionView.registerClass(LeftMenuCollectionViewCell.self, forCellWithReuseIdentifier: "ls") } override func collectionView(collectionView: UICollectionView!, cellForItemAtIndexPath indexPath: NSIndexPath!) -> UICollectionViewCell! { var cell: LeftMenuCollectionViewCell cell = collectionView.dequeueReusableCellWithReuseIdentifier("ls", forIndexPath: indexPath) as LeftMenuCollectionViewCell println(cell.label) // <- this is nil, why?? cell.label.text = "asd" return cell …

15
วิธีการตั้งศูนย์ข้อความของ UIButton ใช้ IB
ฉันไม่สามารถตั้งชื่อ UIButton โดยใช้ IB เป็นศูนย์กลางได้ ชื่อของฉันคือหลายบรรทัด มันให้เช่นนี้ แต่ฉันต้องการแบบนี้ ฉันได้ให้พื้นที่ในนี้ แต่ฉันไม่ต้องการที่จะทำ เนื่องจากมันไม่ได้จัดตำแหน่งอย่างแน่นอนสำหรับบางกรณีและฉันรู้ว่ามีคุณสมบัติของ UILabel ในการตั้งค่าการจัดตำแหน่ง แต่ฉันไม่ต้องการเขียนโค้ดสำหรับสิ่งนั้น .. เพียงแค่ต้องการตั้งค่าทุกอย่างจาก IB ขอบคุณ

9
Xcode 6 สตอรีบอร์ดผิดขนาดหรือไม่
สร้างโครงการใหม่ตั้งแต่เริ่มต้นใน Swift ใน Xcode 6 (Beta 1) และได้เห็นพฤติกรรมแปลก ๆ กับสตอรีบอร์ดและผลลัพธ์ที่ฉันกำลังดู ฉันได้สร้างส่วนต่อประสานที่เรียบง่าย (ดังแสดงด้านล่าง) - ด้วยคุณสมบัติของ View Controller ที่รวมอยู่ เมื่อฉันเรียกใช้ตัวจำลองนี้ฉันคาดว่า 'Hello, World' จะเป็นศูนย์กลางในส่วนติดต่อผู้ใช้ - อย่างไรก็ตามดูเหมือนว่า 'Square' นี้เข้ากับหน้าจอ iPhone ได้ง่ายและทำให้มองเห็นสิ่งที่ผิด (ดูด้านล่าง ) คำถามของฉันคือ: มีคนอื่นเห็นพฤติกรรมนี้และพวกเขาแก้ไขได้อย่างไร ขอบคุณ!

6
Xcode เปลี่ยนสตอรี่บอร์ดและไฟล์ XIB ที่ไม่ได้แก้ไข
สตอรีบอร์ดเป็นความเจ็บปวดจากมุมมองของกระบวนการทำงานแบบคอมไพล์เมื่อมีคนหลายคนทำงานร่วมกัน ตัวอย่างเช่น XML ในไฟล์. สตอรี่บอร์ดมี<document>แท็กเริ่มต้นtoolsVersionและsystemVersionแอตทริบิวต์ที่เปลี่ยนแปลงโดยการกำหนดค่าใด ๆ ก็ตามที่เครื่องมือจัดการไฟล์ล่าสุดกำลังทำงานอยู่ การซิงโครไนซ์เวอร์ชัน Xcode ของทุกคนดูเหมือนจะช่วยได้อย่างแม่นยำtoolsVersionแต่systemVersionจะมีการเปลี่ยนแปลงไม่ว่าจะเป็นอย่างไรทั้งนี้ขึ้นอยู่กับเวอร์ชัน Mac และ / หรือ OS X ที่นักพัฒนาใช้งานอยู่ นี่เป็นเรื่องงี่เง่า แต่ส่วนใหญ่ไม่เป็นอันตราย สิ่งที่ทำให้เรากังวลคือในบางครั้งการเปลี่ยนแปลงอื่น ๆ จะเกิดขึ้นโดยอัตโนมัติกับสตอรีบอร์ดเพียงแค่เปิดหลังจากไฟล์git pull. กล่าวคืออลิซทำการเปลี่ยนแปลงกับสตอรีบอร์ดยอมรับและผลักดันไปยังที่เก็บ จากนั้นบ็อบดึงการเปลี่ยนแปลงของอลิซและเปิดกระดานเรื่องราวเพื่อทำการเปลี่ยนแปลงเพิ่มเติม ทันทีที่เขาเปิดกระดานเรื่องราวไอคอนไฟล์จะเปลี่ยนเป็นสถานะที่แก้ไข แต่ไม่ได้บันทึกทันทีและgit statusแสดงให้เห็นว่ามีการเปลี่ยนแปลงแปลก ๆ เกิดขึ้นจำนวนมาก ทั้งหมดนี้โดยที่ Bob ไม่ได้เปลี่ยนแปลงอะไรหรือบันทึกไฟล์ด้วยตัวเอง การเปลี่ยนแปลงอัตโนมัติที่พบบ่อยที่สุดที่เราเห็นคือการหายไปหรือการปรากฏขึ้นอีกครั้งของ<classes>แท็กทั้งหมดที่อยู่ใกล้กับส่วนท้ายของไฟล์สตอรีบอร์ด เรายังไม่ทราบว่าอะไรเป็นสาเหตุของสิ่งนี้ เราอาจมีสตอรี่บอร์ดเวอร์ชันแปลหลายเวอร์ชันในไดเร็กทอรี. lproj ต่างๆและเมื่อเปิดภายในอินเทอร์เฟซ Builder ลำดับชั้นของคลาสอาจถูกลบออกจากบางเวอร์ชันและเพิ่มลงในเวอร์ชันอื่น ๆ หรือปล่อยให้อยู่คนเดียวในบางไดเร็กทอรี สิ่งนี้ทำให้เกิดเสียงดังgit diffมาก แต่ก็ไม่ได้ทำลายฟังก์ชันการทำงานใด ๆ เรามักจะเลือกเพิ่มการเปลี่ยนแปลงจริงที่เราทำลงในดัชนีของ git กระทำสิ่งเหล่านั้นจากนั้นก็ทิ้งสิ่งที่เกิดขึ้นเองและไร้สาระ<classes>ซ้ำของการเปลี่ยนแปลงนี่คือการกระทำเล็ก ๆ …

2
ลบ autolayout (ข้อ จำกัด ) ใน Interface Builder
ฉันพยายามทำให้โปรเจ็กต์ของฉันเข้ากันได้กับ Snow Leopard และฉันไม่สามารถลบการจัดวางอัตโนมัติในหัวปากกาโดยใช้ตัวสร้างอินเทอร์เฟซ (XCode 4.3 บน Lion) เป็นไปได้หรือไม่ที่จะลบข้อ จำกัด และการจัดวางอัตโนมัติในปลายปากกาบน XCode


2
StoryBoard ID คืออะไรและฉันจะใช้สิ่งนี้ได้อย่างไร?
ฉันยังใหม่กับการพัฒนา IOS และเพิ่งเริ่มต้นใน Xcode 4.5 ฉันเห็นทุก viewController ว่าฉันสามารถตั้งค่าตัวแปรเอกลักษณ์บางอย่างรวมถึงรหัสสตอรี่บอร์ด นี่คืออะไรและฉันจะใช้มันได้อย่างไร? ฉันเริ่มค้นหาใน stackoverflow และไม่พบคำอธิบายใด ๆ ฉันคิดว่ามันไม่ใช่แค่ป้ายโง่ ๆ ที่ฉันสามารถตั้งค่าให้จำคอนโทรลเลอร์ได้ใช่ไหม มันทำอะไร?

14
ฉันสามารถปิดใช้งานการจัดวางอัตโนมัติสำหรับมุมมองย่อยเฉพาะที่รันไทม์ได้หรือไม่
ฉันมีมุมมองที่ต้องมีการจัดการเฟรมโดยใช้โปรแกรม - เป็นมุมมองเอกสารประเภทหนึ่งที่ครอบคลุมเนื้อหาซึ่งจะถูกเลื่อนและซูมไปรอบ ๆ ซูเปอร์วิวโดยจัดการกับจุดเริ่มต้นของเฟรม Autolayout ต่อสู้กับสิ่งนี้ที่รันไทม์ การปิดการใช้งานระบบอัตโนมัติโดยสิ้นเชิงดูเหมือนจะค่อนข้างรุนแรงเนื่องจากสามารถใช้เพื่อจัดการเลย์เอาต์สำหรับมุมมองอื่น ๆ ได้อย่างสมเหตุสมผล ดูเหมือนว่าสิ่งที่ฉันต้องการคือ "null constraint" บางอย่าง

14
การปรับขนาดแบบอักษรที่กำหนดเองในคลาสขนาด Xcode 6 ทำงานไม่ถูกต้องกับแบบอักษรที่กำหนดเอง
Xcode 6มีคุณลักษณะใหม่ที่แบบอักษรและขนาดตัวอักษรในUILabel, UITextFieldและUIButtonสามารถตั้งค่าโดยอัตโนมัติตามชั้นขนาดของการกำหนดค่าอุปกรณ์ในปัจจุบันจะอยู่ในสตอรี่บอร์ด ตัวอย่างเช่นคุณสามารถตั้งค่าUILabelให้ใช้แบบอักษรขนาด 12 ในการกำหนดค่า "ความกว้างความสูงใดก็ได้" (เช่นบน iPhone ในแนวนอน) และขนาด 18 ในการกำหนดค่า "ความกว้างปกติความสูงปกติ" (เช่นบนiPad ) ดูข้อมูลเพิ่มเติมได้ที่นี่: developer.apple.com/size_class นี่เป็นคุณสมบัติที่ยอดเยี่ยมในทางทฤษฎีเนื่องจากอาจทำให้ไม่จำเป็นต้องตั้งค่าแบบอักษรที่แตกต่างกันโดยทางโปรแกรมบนคุณสมบัติ UI ตามการกำหนดค่าอุปกรณ์ ตอนนี้ฉันมีโค้ดเงื่อนไขบางอย่างที่ตั้งค่าฟอนต์ตามประเภทอุปกรณ์ แต่แน่นอนว่านั่นหมายความว่าฉันต้องตั้งค่าฟอนต์โดยใช้โปรแกรมทุกที่ทั่วทั้งแอพ ตอนแรกฉันรู้สึกตื่นเต้นมากเกี่ยวกับคุณสมบัตินี้ แต่ฉันพบว่ามันมีปัญหาอย่างรุนแรงในการใช้งานจริงสำหรับฉัน (อาจเป็นข้อบกพร่อง) โปรดทราบว่าฉันกำลังสร้างจากSDK 8และตั้งเป้าหมายการปรับใช้ขั้นต่ำของiOS 8ดังนั้นสิ่งนี้จึงไม่เกี่ยวข้องกับความเข้ากันได้กับ iOS เวอร์ชันเก่า ปัญหาคือ: ถ้าฉันตั้งค่าขนาดแบบอักษรที่แตกต่างกันสำหรับคลาสขนาดต่างๆและใช้แบบอักษร "ระบบ" ที่iOSจัดหาให้ทุกอย่างทำงานได้ตามที่คาดไว้และขนาดแบบอักษรจะเปลี่ยนไปตามระดับขนาด หากฉันใช้แบบอักษรที่กำหนดเองที่แอปพลิเคชันของฉันจัดหาให้ (ใช่ฉันได้ตั้งค่าอย่างถูกต้องในชุดแอปพลิเคชันของฉันเนื่องจากทำงานโดยใช้โปรแกรม) และตั้งค่าแบบอักษรที่กำหนดเองเป็นป้ายกำกับในสตอรีบอร์ดของ XCode 6ซึ่งก็ทำงานได้ตามที่คาดไว้เช่นกัน แต่เมื่อฉันพยายามใช้ขนาดที่แตกต่างกันของแบบอักษรที่กำหนดเองสำหรับคลาสที่มีขนาดต่างกันในสตอรีบอร์ดมันก็ใช้ไม่ได้ทันที ความแตกต่างเพียงอย่างเดียวในการกำหนดค่าคือแบบอักษรที่ฉันเลือก (แบบกำหนดเองเทียบกับแบบอักษรของระบบ) แบบอักษรทั้งหมดจะปรากฏในไฟล์อุปกรณ์และตัวจำลองเป็นแบบอักษรเริ่มต้นของระบบที่ขนาดเริ่มต้นโดยไม่คำนึงถึงระดับขนาด (และฉันตรวจสอบผ่านดีบักเกอร์ว่าใช้แทนแบบอักษรของระบบสำหรับแบบอักษรจริงที่ระบุในกระดานเรื่องราว) โดยพื้นฐานแล้วคุณลักษณะของคลาสขนาดดูเหมือนจะใช้งานไม่ได้สำหรับฟอนต์ที่กำหนดเอง นอกจากนี้ที่น่าสนใจคือแบบอักษรที่กำหนดเองจะแสดงและปรับขนาดอย่างเหมาะสมในบานหน้าต่าง "Preview" ของ XCode …

4
การจัดการ Touch Event ใน UILabel และต่อเข้ากับ IBAction
โอเคฉันมีตัวUILabelสร้างอินเทอร์เฟซที่สร้างขึ้นซึ่งแสดงข้อความเริ่มต้นบางส่วนของ "แตะเพื่อเริ่ม" เมื่อผู้ใช้แตะที่UILabelฉันต้องการให้ทริกเกอร์วิธี IBAction: -(IBAction)next;ซึ่งจะอัปเดตข้อความบนฉลากเพื่อพูดสิ่งใหม่ ๆ มันจะสะดวกมากถ้าสิ่งนี้ทำให้ฉันเพียงแค่ลากการเชื่อมต่อจากวิธีการของฉันไปที่ป้ายชื่อของฉันจากนั้นเลือกสัมผัสภายในเช่นเดียวกับปุ่ม แต่อนิจจาไม่มีซิการ์ อย่างไรก็ตามฉันเดาว่าคำถามของฉันคือฉันจะต้องมีคลาสย่อยUILabelเพื่อให้มันใช้งานได้หรือไม่? หรือมีวิธีใดบ้างที่ฉันสามารถลากปุ่มบนป้ายได้ แต่ทำให้ทึบแสง 0% หรือมีวิธีแก้ปัญหาที่ง่ายกว่าที่ฉันหายไป?

3
มีใครรู้บ้างว่าไอคอน Exit ใหม่ใช้สำหรับแก้ไขสตอรี่บอร์ดโดยใช้ Xcode 4.5 หรือไม่?
การคลิกขวาที่ไอคอนออกจะทำให้หน้าต่างว่างเปล่า ไม่สามารถ Ctrl ลากการเชื่อมต่อกับองค์ประกอบ IB หรือไฟล์ต้นฉบับที่เกี่ยวข้อง เอกสารไม่ให้ความรัก ไม่ปรากฏในไฟล์ nib มีเพียงสตอรี่บอร์ดเท่านั้น สมมติฐานของฉันคือมันเป็นข้อพิสูจน์ในการทำ segues แต่ฉันไม่เห็นวิธีการใหม่ ๆ ในการสำรองข้อมูล ทุกคน?

17
ฉันจะใช้ UIScrollView ใน Interface Builder ได้อย่างไร
แม้ว่าที่ผ่านมาฉันจะใช้UIScrollViewประสบความสำเร็จโดยการจัดการกับโปรแกรม แต่ฉันมีปัญหาในการทำให้มันทำงานได้โดยการตั้งค่าเฉพาะในตัวสร้างอินเทอร์เฟซ ฉันมีหน้า "เกี่ยวกับ" ง่ายๆในแอป iPhone ของฉัน มีUITextViewไอคอนบางส่วนและลิงก์ไปยังแอปอื่น ๆ ของฉัน ฉันได้เพิ่มมุมมองเหล่านี้ทั้งหมดในมุมมองของฉันUIScrollViewโดยจัดเรียงให้มีขนาดรวม> 480 เมื่อฉันเปิดแอพของฉันมุมมองเลื่อนจะแสดงเฉพาะเนื้อหาที่พอดีกับหน้าจอและไม่มีอะไรเลื่อน เป็นไปได้ไหมที่จะทำผ่าน IB หรือฉันต้องปรับแต่ง contentSize ผ่านรหัส?

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