!.FMPOTXJGUழࣂେࢤຊܦࡁ৽ฉࣾ4XJGUͱ$PSF5FYUͱจࣈΈ
View Slide
2ழࣂେࢤʢ*LBJ5BJTIJʣຊܦࡁ৽ฉࣾͷΤϯδχΞࢴ໘ϏϡʔΞʔΞϓϦͷ։ൃ4XJGU/PEFKT1ZUIPOϝϩϯࣗݾհ
จࣈΈ͍ͯ͠·͔͢ʁ3
4ग़యIUUQPFDOFUTZPLV[BJNFMPOΞʔϧεɾϑΣϘϦοτʢผ໊ʣϚεΫϝϩϯϝϩϯͷදछͰ͢ɻՌൽ৭Ͱશ໘ʹඒ͍༷͕͠Ͱ͍ͯ·͢ɻ
5ग़యIUUQPFDOFUTZPLV[BJNFMPOΞʔϧεɾϑΣϘϦοτʢผ໊ʣϚεΫϝϩϯϝϩϯͷදछͰ͢ɻՌൽ৭Ͱશ໘ʹඒ͍༷͕͠Ͱ͍ͯ·͢ɻ
6ग़యIUUQPFDOFUTZPLV[BJNFMPOΞʔϧεɾϑΣϘϦοτʢผ໊ʣϚεΫϝϩϯϝϩϯͷදछͰ͢ɻՌൽ৭Ͱશ໘ʹඒ͍༷͕͠Ͱ͍ͯ·͢ɻ
7ग़యIUUQPFDOFUTZPLV[BJNFMPOΞʔϧεɾϑΣϘϦοτʢผ໊ʣϚεΫϝϩϯϝϩϯͷදछͰ͢ɻՌൽ৭Ͱશ໘ʹඒ͍༷͕͠Ͱ͍ͯ·͢ɻʢผ໊ʣ
ΞʔϧεɾϑΣϘϦοτϝϩϯͷදछͰ͢ɻՌൽ৭Ͱશ໘ʹඒ͍༷͕͠Ͱ͍ͯ·͢ɻʢผ໊ʣϚεΫϝϩϯ8ग़యIUUQPFDOFUTZPLV[BJNFMPOʢผ໊ʣʢผ໊ʣ
9ग़యIUUQPFDOFUTZPLV[BJNFMPOΞʔϧεɾϑΣϘϦοτϝϩϯͷදछͰ͢ɻՌൽ৭Ͱશ໘ʹඒ͍༷͕͠Ͱ͍ͯ·͢ɻʢผ໊ʣϚεΫϝϩϯ
10
ߦ಄ͷׅހΛͭΊΔฤ$PSF5FYUΛͬͨඳը11
12 /4"UUSJCVUFE4USJOH͔Β$55ZQFTFUUFSΛੜ Ұߦͷ͞ %PVCMFΛ͋ͨ͑ͯɺվߦ͢Δ·ͰͷจࣈΛಘΔvar typesetter = CTTypesetterCreateWithAttributedString( attributedText)let count = CTTypesetterSuggestLineBreak( typesetter, 0, Double(lineWidth))$PSF5FYUΛͬͨඳըʕߦ಄ͷׅހΛͭΊΔฤϝϩϯͷදछͰ͢ɻՌൽ৭Ͱશ໘ʹ ʹ20 2119181716151413121110987654321
13 $55ZQFTFUUFS͔ΒҰߦͷ$5-JOFΛੜ ߦ಄͕࢝ΊׅހͳΒɺӈʹدͤΔͷ͞ΛಘΔlet ctline = CTTypesetterCreateLine( typesetter, CFRangeMake(0, count))let offsetX = fontSize / 2 // ͱΓ͋͑ͣϑΥϯταΠζͷʹ$PSF5FYUΛͬͨඳըʕߦ಄ͷׅހΛͭΊΔฤʢ
14 ӈʹدͤΔΛઃఆͯ͠ɺ$5-JOFΛඳը ߦ͘Γ͔͑͢CGContextSetTextPosition(context, offsetX, offsetY) CTLineDraw(ctline, context)$PSF5FYUΛͬͨඳըʕߦ಄ͷׅހΛͭΊΔฤʢผ໊ʣϚεΫϝϩϯʢผ໊ʣϚεΫϝϩϯ
15/4"UUSJCVUFE4USJOHΑΓ̏ഒ͘Β͍͍จࣈ͕ଟ͘ͳΔͱɺNT NTΛ͑Δ͜ͱಛʹ$55ZQFTFUUFS$SFBUF8JUI"UUSJCVUFE4USJOH͕ॏ͍͍ͭ͜ͷ࣌ؒ"UUSJCVUFΛଟ͋ͯ͘Δͱ͘ͳΔύϑΥʔϚϯε
HJUIVCDPNJLBJU,FSO-BCFM16ߦ಄Ґஔௐɺࠨɾதԝɾӈɾۉἧ͑ɺ ྡ͢ΔͷִؒΛௐɺ۟ಡͷ͍ग़͠ͳͲϥΠϒϥϦΛ͍ͭͬͯ͘·͢
$PSF5FYU4XJGUͰͲ͏มԽ17͓·͚
184XJGU 4XJGU$PSF(SBQIJDT
194XJGU 4XJGU$PSF(SBQIJDT
20$PSF5FYU4XJGU 4XJGU