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

อ็อบเจ็กต์ NSAttributedString จัดการสตริงอักขระและชุดแอ็ตทริบิวต์ที่เกี่ยวข้อง (ตัวอย่างเช่นฟอนต์และ kning) ที่ใช้กับอักขระแต่ละตัวหรือช่วงของอักขระในสตริง การเชื่อมโยงของอักขระและแอตทริบิวต์เรียกว่าสตริงที่มีการระบุ

28
ฉันจะสร้างสตริงที่ประกอบขึ้นด้วย Swift ได้อย่างไร
ฉันกำลังพยายามสร้างเครื่องคิดเลขแบบง่าย ๆ ฉันต้องการแสดงปริมาณกาแฟเป็นกรัม สัญลักษณ์ "g" สำหรับกรัมต้องแนบกับ UILabel ของฉันที่ฉันใช้เพื่อแสดงจำนวนเงิน ตัวเลขใน UILabel กำลังเปลี่ยนแปลงแบบไดนามิกด้วยการป้อนข้อมูลของผู้ใช้ดี แต่ฉันต้องเพิ่มตัวพิมพ์เล็ก "g" ที่ส่วนท้ายของสตริงที่มีการจัดรูปแบบแตกต่างจากหมายเลขอัปเดต "g" จะต้องแนบกับตัวเลขเพื่อให้ขนาดและตำแหน่งเปลี่ยนแปลงไป "g" "จะย้าย" พร้อมกับตัวเลข ฉันแน่ใจว่าปัญหานี้ได้รับการแก้ไขมาก่อนดังนั้นลิงก์ในทิศทางที่ถูกต้องจะเป็นประโยชน์เมื่อฉันทำใจเล็ก ๆ ของฉันออกไป ฉันค้นหาเอกสารประกอบสำหรับสตริงที่มีการบันทึกและฉันได้ดาวน์โหล "Attributed String Creator" จากแอพสโตร์ แต่โค้ดผลลัพธ์อยู่ใน Objective-C และฉันใช้ Swift สิ่งที่จะยอดเยี่ยมและอาจเป็นประโยชน์ต่อนักพัฒนาคนอื่น ๆ ที่เรียนภาษานี้เป็นตัวอย่างที่ชัดเจนในการสร้างแบบอักษรที่กำหนดเองพร้อมแอตทริบิวต์ที่กำหนดเองโดยใช้สตริงที่ประกอบใน Swift เอกสารสำหรับเรื่องนี้สับสนมากเนื่องจากไม่มีเส้นทางที่ชัดเจนในการทำเช่นนั้น แผนของฉันคือการสร้างสตริงที่ประกอบและเพิ่มลงในส่วนท้ายของสตริง CoffeeAmount ของฉัน var coffeeAmount: String = calculatedCoffee + attributedText โดยที่ CalculCoffee เป็น Int …

15
คุณใช้ NSAttributedString อย่างไร
หลายสีในNSStringหรือNSMutableStringsเป็นไปไม่ได้ ดังนั้นผมเคยได้ยินเพียงเล็กน้อยเกี่ยวกับที่NSAttributedStringซึ่งเป็นที่รู้จักกับSDK 3.2 iPad (ประมาณ 3.2) และสามารถใช้ได้บน iPhone เช่นiPhone SDK 4.0 เบต้า ฉันต้องการสตริงที่มีสามสี เหตุผลที่ฉันไม่ได้ใช้ NSStrings 3 ตัวแยกกันเป็นเพราะความยาวของแต่ละNSAttributedStringsubstrings มีการเปลี่ยนแปลงบ่อยครั้งดังนั้นฉันจึงไม่ต้องการใช้การคำนวณใด ๆ เพื่อจัดตำแหน่งNSStringวัตถุแยก 3 ชิ้นใหม่ ถ้าเป็นไปได้โดยใช้NSAttributedStringฉันจะทำต่อไปนี้อย่างไร - (ถ้าไม่สามารถทำได้ด้วยสตริง NSAttributed คุณจะทำอย่างไร): แก้ไข: โปรดจำไว้ว่า@"first", @"second"และ@"third"จะถูกแทนที่ด้วยสตริงอื่น ๆ ในเวลาใดก็ได้ ดังนั้นการใช้ค่า NSRange ของฮาร์ดโค้ดจะไม่ทำงาน

14
ข้อความตัวหนาและไม่เป็นตัวหนาใน UILabel เดียว?
เป็นไปได้อย่างไรที่จะรวมทั้งตัวหนาและตัวหนาใน uiLabel ฉันไม่ควรใช้ UIWebView .. ฉันอ่านแล้วอาจเป็นไปได้โดยใช้ NSAttributedString แต่ฉันไม่รู้ว่าจะใช้ยังไง ความคิดใด ๆ Apple ประสบความสำเร็จในหลาย ๆ แอพ สกรีนช็อตตัวอย่าง: ขอบคุณ! - ดอม

30
สร้าง "ลิงก์" แบบแตะได้ใน NSAttributedString ของ UILabel หรือไม่
ฉันค้นหาสิ่งนี้มาหลายชั่วโมงแล้ว แต่ล้มเหลว ฉันอาจไม่รู้ด้วยซ้ำว่าฉันควรมองหาอะไร แอปพลิเคชั่นจำนวนมากมีข้อความและในข้อความนี้เป็นไฮเปอร์ลิงก์ของเว็บในรูปสี่เหลี่ยมมุมฉาก เมื่อฉันคลิกมันจะUIWebViewเปิดขึ้น สิ่งที่ฉันเป็นปริศนาก็คือพวกเขามักจะมีลิงค์ที่กำหนดเองเช่นถ้าคำเริ่มต้นด้วย # มันก็สามารถคลิกได้และแอปพลิเคชันตอบสนองโดยการเปิดมุมมองอื่น ฉันจะทำสิ่งนั้นได้อย่างไร เป็นไปได้ด้วยUILabelหรือฉันต้องการUITextViewหรืออย่างอื่น?

22
ฉันจะสร้างลิงก์ที่คลิกได้ใน NSAttributedString ได้อย่างไร
มันเป็นเรื่องเล็ก ๆ น้อย ๆ UITextViewที่จะทำให้การเชื่อมโยงหลายมิติที่สามารถคลิกได้ใน คุณเพิ่งตั้งช่องทำเครื่องหมาย "ตรวจสอบลิงก์" ในมุมมองใน IB และตรวจจับลิงก์ HTTP และเปลี่ยนเป็นไฮเปอร์ลิงก์ อย่างไรก็ตามนั่นก็หมายความว่าสิ่งที่ผู้ใช้เห็นคือลิงค์ "ดิบ" ไฟล์ RTF และ HTML ทั้งสองตัวช่วยให้คุณสามารถตั้งค่าสตริงที่ผู้ใช้สามารถอ่านได้พร้อมลิงค์ "behind" มันง่ายที่จะติดตั้งข้อความประกอบในมุมมองข้อความ (หรือ a UILabelหรือUITextFieldสำหรับเรื่องนั้น) อย่างไรก็ตามเมื่อข้อความประกอบนั้นมีลิงค์อยู่มันไม่สามารถคลิกได้ มีวิธีที่จะทำให้ผู้ใช้สามารถอ่านได้ที่คลิกข้อความในหนึ่งUITextView, UILabelหรือUITextField? มาร์กอัปนั้นแตกต่างกันใน SO แต่นี่เป็นแนวคิดทั่วไป สิ่งที่ฉันต้องการคือข้อความเช่นนี้: morph นี้สร้างขึ้นด้วยFace Dancerคลิกเพื่อดูใน app store สิ่งเดียวที่ฉันจะได้คือ: morph นี้สร้างขึ้นด้วย Face Dancer คลิกที่http://example.com/facedancerเพื่อดูใน app store

8
ฉันจะต่อ NSAttributedStrings ได้อย่างไร
ฉันต้องการค้นหาสตริงและตั้งค่าคุณลักษณะบางอย่างก่อนที่จะรวมสตริงดังนั้นการมี NSStrings -> เชื่อมโยงพวกเขา -> ทำให้ NSAttributedString ไม่ใช่ตัวเลือก

20
boundingRectWithSize สำหรับ NSAttributedString คืนขนาดผิด
ฉันพยายามรับค่า rect สำหรับสตริงที่ประกอบ แต่การเรียก boundingRectWithSize ไม่เคารพขนาดที่ฉันส่งเข้าไปและกำลังคืนค่า rect ที่มีความสูงบรรทัดเดียวซึ่งตรงข้ามกับความสูงขนาดใหญ่ (เป็นสตริงที่ยาว) ฉันได้ทดลองโดยการส่งผ่านค่าที่สูงมากสำหรับความสูงและ 0 เช่นเดียวกับในรหัสด้านล่าง CGRect paragraphRect = [attributedText boundingRectWithSize:CGSizeMake(300,0.0) options:NSStringDrawingUsesDeviceMetrics context:nil]; สิ่งนี้ขาดหรือฉันต้องทำอย่างอื่นเพื่อให้มันคืนค่า rect สำหรับข้อความที่ถูกห่อหรือไม่?

15
แปลง HTML เป็น NSAttributedString ใน iOS
ฉันใช้อินสแตนซ์ของUIWebViewการประมวลผลข้อความและสีอย่างถูกต้องมันให้ผลลัพธ์เป็น HTML แต่แทนที่จะแสดงในUIWebViewฉันต้องการแสดงโดยใช้Core TextNSAttributedStringกับ ฉันสามารถสร้างและวาด NSAttributedStringแต่ฉันไม่แน่ใจว่าฉันสามารถแปลงและแมป HTML ลงในสตริงที่ประกอบ ฉันเข้าใจว่าภายใต้ Mac OS X NSAttributedStringมีinitWithHTML:วิธีการ แต่นี่เป็น Mac เท่านั้นที่เพิ่มเติมและไม่สามารถใช้ได้กับ iOS ฉันก็รู้ว่ามีคำถามที่คล้ายกันนี้ แต่ไม่มีคำตอบฉันจะลองอีกครั้งและดูว่ามีใครสร้างวิธีการทำเช่นนี้หรือไม่ถ้าพวกเขาสามารถแบ่งปันได้

8
เปลี่ยนสีสตริงด้วย NSAttributedString?
ฉันมีตัวเลื่อนสำหรับแบบสำรวจที่แสดงสตริงต่อไปนี้โดยยึดตามค่าของตัวเลื่อน: "แย่มากแย่ไม่ดีดีมาก" นี่คือรหัสสำหรับตัวเลื่อน: - (IBAction) sliderValueChanged:(UISlider *)sender { scanLabel.text = [NSString stringWithFormat:@" %.f", [sender value]]; NSArray *texts=[NSArray arrayWithObjects:@"Very Bad", @"Bad", @"Okay", @"Good", @"Very Good", @"Very Good", nil]; NSInteger sliderValue=[sender value]; //make the slider value in given range integer one. self.scanLabel.text=[texts objectAtIndex:sliderValue]; } ฉันต้องการให้ "แย่มาก" เป็นสีแดง "แย่" เป็นสีส้ม "โอเค" เป็นสีเหลือง "ดี" …

15
การแยกวิเคราะห์ HTML เป็น NSAttributedText - จะตั้งค่าแบบอักษรได้อย่างไร?
ฉันกำลังพยายามรับตัวอย่างข้อความที่จัดรูปแบบเป็น html เพื่อแสดงบน iPhone ใน UITableViewCell จนถึงตอนนี้ฉันมีสิ่งนี้: NSError* error; NSString* source = @"<strong>Nice</strong> try, Phil"; NSMutableAttributedString* str = [[NSMutableAttributedString alloc] initWithData:[source dataUsingEncoding:NSUTF8StringEncoding] options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType, NSCharacterEncodingDocumentAttribute: [NSNumber numberWithInt:NSUTF8StringEncoding]} documentAttributes:nil error:&error]; ผลงานแบบนี้ ฉันได้รับข้อความบางส่วนที่มี 'Nice' เป็นตัวหนา! แต่ ... มันยังกำหนดฟอนต์ให้เป็น Times Roman ด้วย! นี่ไม่ใช่แบบอักษรที่ฉันต้องการ ฉันคิดว่าต้องตั้งค่าบางอย่างใน documentAttributes แต่ไม่พบตัวอย่างใด ๆ

7
NSAttributedString เพิ่มการจัดตำแหน่งข้อความ
ฉันจะเพิ่มแอตทริบิวต์การจัดแนวข้อความให้กับ NSAttributedString เพื่อจัดข้อความให้อยู่กึ่งกลางได้อย่างไร แก้ไข: ฉันทำอะไรผิดหรือเปล่า? ดูเหมือนจะไม่เปลี่ยนแนว CTParagraphStyleSetting setting; setting.spec = kCTParagraphStyleSpecifierAlignment; setting.valueSize = kCTCenterTextAlignment; CTParagraphStyleSetting settings[1] = { {kCTParagraphStyleSpecifierAlignment, sizeof(CGFloat), &setting}, }; CTParagraphStyleRef paragraph = CTParagraphStyleCreate(settings, sizeof(setting)); NSMutableAttributedString *mutableAttributed = [[NSMutableAttributedString alloc] initWithAttributedString:self.attributedString]; [mutableAttributed addAttributes:[NSDictionary dictionaryWithObjectsAndKeys:(NSObject*)paragraph ,(NSString*) kCTParagraphStyleAttributeName, nil] range:_selectedRange];

9
iphone / ipad: ใช้ NSAttributedString อย่างไร?
มีหลายคนพูดเกี่ยวกับข้อความที่อุดมไปด้วย iPhone / iPad NSAttributedStringและหลายรู้เกี่ยวกับ แต่จะใช้NSAttributedStringอย่างไร? ฉันค้นหาเป็นเวลานานไม่พบเบาะแสสำหรับสิ่งนี้ ฉันรู้วิธีตั้งค่าNSAttributedStringแล้วฉันควรทำอย่างไรเพื่อแสดงข้อความบน iPhone / iPad ด้วย Rich Text เอกสารอย่างเป็นทางการบอกว่าควรใช้กับCoreText.Frameworkหมายความว่าอย่างไร? มีวิธีง่ายๆแบบนี้ไหม? NSAttributedString *str; ..... UILabel *label; label.attributedString = str;

16
สตริงที่มีการระบุแหล่งที่มาพร้อมแบบอักษรที่กำหนดเองในสตอรีบอร์ดไม่โหลดอย่างถูกต้อง
เรากำลังใช้แบบอักษรที่กำหนดเองในโครงการของเรา ทำงานได้ดีใน Xcode 5 ใน Xcode 6 ทำงานในข้อความธรรมดาสตริงที่ประกอบในโค้ด แต่สตริงที่ประกอบในสตอรีบอร์ดทั้งหมดจะเปลี่ยนกลับเป็น Helvetica เมื่อทำงานบนโปรแกรมจำลองหรืออุปกรณ์แม้ว่าจะดูถูกต้องในสตอรีบอร์ด ฉันไม่แน่ใจว่าเป็นบั๊กของ Xcode 6 หรือ iOS 8 SDK หรือวิธีการใช้ฟอนต์ที่กำหนดเองมีการเปลี่ยนแปลงใน Xcode 6 / iOS 8?


18
ใช้สีแบบอักษรหลายสีในป้ายกำกับเดียว
มีวิธีใช้สีแบบอักษรสองหรือสามสีในป้ายกำกับเดียวใน iOS หรือไม่? หากใช้ข้อความ "สวัสดีคุณเป็นอย่างไรบ้าง" เป็นตัวอย่างเช่น "สวัสดี" จะเป็นสีฟ้าและ "คุณเป็นอย่างไร" จะเป็นสีเขียว เป็นไปได้ไหมดูเหมือนง่ายกว่าการสร้างป้ายกำกับหลาย ๆ ป้าย

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