Redirecting… Click here if you are not redirected.
Live Nation says its Ticketmaster subsidiary was hacked. A hacker claims to be selling 560 million customer records. An autonomous pod. A solid-state battery-powered sports car. An electric pickup truck. A convertible grand tourer EV with up to 600 miles of range. A “fully connected mobility device” for young urban innovators to be built by Foxconn and priced under $30,000. The next Popemobile. Ov
こんにちは、開発担当の眞弓です。 テキストを表示するとき、通常は UILabel などを使いますがときどき「凝った文字列を使いたい」ということはないでしょうか? そんなときのために、今回は Core Text の基本的な使い方について書いてみようと思います。 人によってやり方は違うと思いますが、ちょっとしたことに使う場合に私がやっててわかりやすかった方法を紹介します。 位置を指定するやりかたはイメージしにくいので、文字列単位で扱えるやり方で実装をしてみました。 以下のような感じで、「属性付き文字列を作って、その文字列を付け足していって、最後にまとめて表示」というやり方です。 1 : 文字列を作成 2 : フレームを作成 3 : DrawRect 1 : 文字列を作成 属性付き文字列は以下のような感じで作っていきます。 atrString = [[NSMutableAttributedStr
こんにちは、技術部モバイル基盤グループのヴァンサン(@vincentisambart)です。 この間、クックパッドの iOS アプリの開発で Core Text と色々遊んだので、今日は Core Text の話をしましょう。 課題は表示する文字の一部の裏に角丸長方形を表示することです。例えばクックパッド iOS アプリに表示されているリンクを長く押すと表示されている角丸長方形です。以下の画像は「落し蓋」に表示されるタッチフィードバックが見えます。区域を計算したら、その後タップ区域のためにも使えますしね。 以下に説明するやり方はクックパッド iOS アプリのやり方を簡略化したものです。(クックパッド iOS アプリは実装時にまだ Swift を使い始めていなかったので Objective-C ですけども) Swift Playground (Swift 2.2) で開発しましょう。コードは
ボタンを押した時やスワイプ、スライドした時に使える音源集。 Octave: A free library of UI sounds. AIFF形式/16 bit/44.1khz なファイルが48個提供されている。 カテゴリは3つ。 ・beeps ブザー...
kishikawakatsumi/SECoreTextView · GitHub iOS/Macの両方で使えて、文字の選択やリンクのクリックに対応したテキストビューをテスト公開しました。 - 24/7 twenty-four seven 前に書いたSECoreTextViewに編集機能を実装しました (iOSのみ)。 SECoreTextViewはCoreTextを使って簡単にクリッカブルなリンクや画像付きのリッチテキストを表示できるテキストビューの代替実装としてのライブラリです。 以前のものはそこそこ簡単に豊かな表現ができるのでこれはこれでけっこう実用的だったと思います。 ↓ このように画像を含めたテキストを表示したり、リンクはクリックに反応して任意の処理をすることができます。 画像に限らず、画面に表示できるものはボタンでもその他のビューでもブロックを渡して任意の描画をすることも可能です
OS X でのアプリのインストールが非常に面倒だ。最悪のパターンはディスクイメージ(.dmg)。 ディスクイメージをダウンロード マウント(ブラウザによって自動マウントされない場合は) アプリをApplicationsフォルダにドラッグアンドドロップ ディスクイメージをイジェクト ディスクイメージファイルをゴミ箱へ移動 ゴミ箱を空(必須では無いがゴミが入っていることに耐えられないので) Twitter には1つの投稿につき140文字までしか送信できないルールがある。普通に考えると、それぞれのプログラミング言語の API を使って普通に文字数を数えれば思うだろう。しかし、この実装が簡単に見える機能にはいろいろな罠が潜んでいる。 Core Text APIを使用して日本語をレンダリングする際に、行間が英数文字と比べると異様に広くなる問題があります。詳しくは E-WA’s Blog - Twee
行間が不自然に空く(デフォルト設定) Cocoa(CoreText)にはこんな感じに、日本語と欧文が混同したテキストを表示すると行間が不自然に空く問題がある。これはたぶん仕様である。 いずれ直そうと思いつつしばらくいじっていたら、解決方法が分かったのでメモ。 単純にスタイルに kCTParagraphStyleSpecifierMaximumLineSpacing を適用するだけ。4.3から使えるみたい。 サンプルはgithubで。 novi/CoreTextJapanese - GitHub c.f. Tweetbot:日本語テキストの行間について | E-WA’s Blog 修正後
前提知識 本投稿ではCoreTextの描画については記載してません。 基礎的な描画についてはgithubの0. 最小限の描画などを参考にして下さい。 また別途、 欧文書体の基礎知識 CoreTextの日本語行間の問題(解決) もお読み下さい。 本題 ヒラギノフォントを使用した場合にでも正確に描画に必要なサイズを取得する方法です。 CoreTextでサイズを取得する場合は以下になります。 /* サイズを取得 */ // 属性 NSDictionary *attrDict = [NSDictionary dictionaryWithObjectsAndKeys: (__bridge id)self.ctFont, kCTFontAttributeName, (__bridge id)self.ctParagraphStyle, kCTParagraphStyleAttributeName, n
Update note: This tutorial has been updated to Swift 4 and Xcode 9 by Lyndsey Scott. The original tutorial was written by Marin Todorov. Core Text is a low-level text engine that when used alongside the Core Graphics/Quartz framework, gives you fine-grained control over layout and formatting. With iOS 7, Apple released a high-level library called Text Kit, which stores, lays out and displays text
iOSにも3.2からCore Textが導入された。よって、縦書きが簡単にできるのだろう、と思ったのだが… 結論。できない。 だが、Core Textや縦書きに関してあまりにも参照できるところが少ないので、ここ数日で知り得た事を書いておく。 Core Textの日本語資料というものは皆無なので、手さぐりでやっていくしかない。例えば、"Core Text 縦書き"でググると、MOSAが2年前に開いたセミナーがひっかかる。まさに欲しいのはコレ。この技術なのだが、今となっては知る由もない。 簡単なところでは、Appleのサンプル"CoreTextTest"が理解の助けになる。 これを見ていくと、CTFramesetterRefというのに各種アトリビュートをセットして、CTFrameRefとか、CTLineRefとかいうのを作って描画すればいいことがわかる。で、各種アトリビュート名からヘッダファイ
9,045行 今日までに書いたコードの行数。 ここまでに次のようなコードを書きました。 基本的なストレージの実装 Unicodeからグリフへの変換 リガチャ(合字)への対応 フォントのアセンダ、ディセンダ、レディングの取得 グリフの幅(Advance)の取得 テスト用アプリケーションの作成 まだまだ基礎工事の段階です。 僕はCocoa のText System をほとんど使わないで実装します。 使うのは文字列と文字属性を管理するNSTextStorage というクラスだけ。 それも内部の実装は全部オリジナルのコードで上書きしています。 そうしないとパフォーマンスをかせげないからです。 Leopard からCoreText という縦書きにも対応した新しいテキストレイアウトエンジンが組み込まれましたが、Mac OS 9 時代からあったATSUI(Apple Type Services for
Almost always when we iOS developers want to display some rich text we are using UIWebView. That’s not by choice, since traditionally Apple did not provide any classes to us being able to show formatted text. That changed slightly with the iPad, because in 3.2 we got CoreText as well as CATextLayer. CoreText gives us NSAttributedString which is basically a string that can have different attributes
iOS開発:UILabelでリッチにテキスト表示(OHAttributedLabel)で、UILabelの表示をカスタマイズしたが、気になる点が残っている。それは、行間の広さだ。 前回の結果だが、OHAttributedLabel(上)を使うと、通常のUILabel(下)よりも、行間が広くなっている。しかも、OHAttributedLabel(上)の1行目と2行目の間だけ、さらに広くなってしまっている。 原因 全体的に行間が広くなっているのは、OHAttributedLabelの問題だろう。 1行目と2行目の間が広くなっているのは、CoreTextのフォントのレンダリングの問題。日本語フォントと英字フォントの高さの違いからくるようだ。解決策も既出で助かった。 Tweetbot:日本語テキストの行間について | E-WA’s Blog CoreTextの日本語行間の問題(解決) – novi
Download source code - 19.4 KB Introduction I needed to position individual text characters in my app, and it was more involved than I thought it would be. So I'm chalking it up for posterity. But I want to zoom out a bit. What's really important isn't knowing how to do a particular trick. It is your general approach to the generic problem of assimilating and implementing new technology. First thi
CoreTextというのは、OSXやiOSで使えるテキスト描画用のフレームワークです。 iOS3.2の頃から使えていたらしいので特に新しいフレームワークというわけではありません。またiOSの場合はUIKitがテキスト描画もいい感じに面倒みてくれるのであまり使う機会もないように思います。 ただし、CoreGraphicsを使って画像を出力する目的でビットマップコンテキストへ日本語を描画しようとすると文字化けしてしまうので、そのような時にはCoreTextを使うと日本語も描画することができます。(画面への描画は日本語もちゃんと出力されます。また単にテキスト画像を生成する目的であれば、iPhoneで利用できるフォントを調べる(その2)で使ったやり方でも日本語の出力が可能(しかも簡単!)ですが、画像や文字を一緒にビットマップコンテキストへ描画する場合は、CoreTextフレームワークを使った方が便
I’ve been asked a few times after I wrote a post about an open source library to simulate the iBooks style page curl effect without using any private API’s as to how to properly display formatted text on the page, and spread text across multiple pages. Manipulating text is what the Core Text library is all about, and just yesterday I posted about a tutorial about how to manipulate text to create
Before the iPad was released you had basically two ways how to get text on screen. Either you would stick with UILabel or UITextView provided by UIKit or if you felt hard-core you would draw the text yourself on the Quartz level incurring all the headaches induced by having to mentally switch between Objective-C and C API functions. As of iOS 3.2 we gained a third alternative in Core Text promisin
CoreTextを使った縦書きの情報が少なかったので、自分なりに調べ試した結果物としてgithubに公開しました。 hokuron/CTRVerticalTextView – github 一応MITライセンスで公開していますが使い物になるかどうか…ww TextViewとなっていますが、UIViewのサブクラスです。 また、この CTRVerticalTextViewはiOS 6ではきちんと動くはずですが、iOS 5ではランドスケープ時に幅と高さが入れ替わらないバグがあります。なのでPull req大歓迎です! 以下にてCoreTextで縦書きをする基本的な方法を… まず、CoreTextを作る順序は CFAttributedString -> CTFramesetter + CGPath -> CTFrame となります。 では、最初のCFAttributedStringを作って
Hearth & Home 暖炉家(だんろや) 北米から直輸入したログハウスや薪ストーブ用の用品を扱っているネットストアです。是非お立ち寄りください。 今日は春祭りです。 Y くんが手伝いに来てくれたので、朝一、O リングを届いていたワッシャーに交換してみました。 やはりサイズが少し小さくて、そのままだとすんなり入らないので、ねじ山に沿って回して入れてみました。 お昼前に祭典なので、自分はお宮に、5 号と Y くんは草刈りに出かけました。 お昼過ぎに迎えに来てもらったんですが、直会で御神酒をいただいて、自分は眠くなったので寝てしまったんんですが。。。 ホースの取り付けをやってくれたんですが、漏れる、ということで、やり直しですね。 銅だと固過ぎるのか、あるいはねじ込む際に歪んだり傷がついたりしたのか、漏れる=隙間がある、ということなので、素材を柔らかくして凹凸に追随するようにするか、水道用の
Core Text APIを使用して日本語をレンダリングする際に、行間が英数文字と比べると異様に広くなる問題があります。詳しくは E-WA’s Blog - Tweetbot:日本語テキストの行間について で説明されています。 CTLineをループして、Y座標をCTFramesetterに頼らず自力で指定し、CTLineDrawで一行ごと描画することでこの問題を回避できます。NSLayoutManagerを使用して英数字のみを描画した際に使用される行の高さを取得しています。 コードは https://gist.github.com/1497649 に置いてあります。
本日ClamXav v2.8がリリースされましたが、このバージョンから有償化されることになりました。 詳細についてはTogetterでまとめましたので、ご一読を。 » 続きを読む… Tweetbot 3は、iPhone/iPod touch用(iPad互換)の高機能なTwitterクライアントアプリケーション。「iOS上で動くロボット」というコンセプトの下、細部まで凝りに凝ったUIデザインで楽しませてくれるTapbotsの製品です。 iOS 7以降向けに根底からリデザインされ、旧バージョンとは別アプリケーションとしてリリースされました。v3.5以降はさらにiOS 8向けの最適化が施されています。 リストの作成や編集、プッシュ通知機能、ミュート機能、各種連携サービスへの対応など、機能的にも充実。もちろんロボット風味のUIデザインや効果音・アニメーションなどの楽しいギミックも満載。 メインのT
Core Text Objective-C Wrapper Introduction One of the most promising and mysterious new frameworks introduced in iOS 3.2 is Core Text. Apple defines Core Text as a “text drawing engine”, which allows Mac (and now iPad) apps to render rich text on any graphics context. Strings drawn with Core Text feature lots of custom settings such as detailed font information, columns, variable line and paragrap
Tweetbotで指摘されている要改善点のひとつとして、日本語ツイートを表示した際の行間の広さ(英語オンリーのツイートに比して)、また日英混じりの場合の行間の広さのばらつきがあります(図参照 – クリックで拡大します)。 これに関しては開発元Tapbotsとやり取りを重ねて来ましたが、残念ながら今のところ、改善の見通しは立っていません。 近日中に嬉しいお知らせができるかもしれません。詳報をお待ちください(2011/07/05追記)。 詳しくは以下に。 この件については過去数回ツイートしたので、引用します; で。日本語テキストの行間が広い問題ですが、開発者曰く「Core Text APIのせい」ということらしいです。俺はプログラミングしませんのでよくわからんのですが。つーことは改善要望を出すのはTapbotsよりもApple、ということになりますか。
2011年6月24日金曜日 CoreTextで改行幅を変更 ▼改行幅の変更 CoreTextでどういったことができるのか調べるため、CoreTextのドキュメントをざっと読んでみました。 ドキュメントを読んで分かったのは、CoreTextを使うと、テキストのレイアウトをスマートに行うことができ、改行幅も簡単に設定できるということ。 そこで、まずは改行幅を変えることができるか試してみました。 ちゃんと文章の途中から改行幅が変わっています。(フォントも変えています。) ▼CoreTextの使用手順 CoreTextを使う手順は複雑なんだろうと思っていましたが、意外とシンプルです。基本的な手順は次のとおりです。少し長いですがコードも掲載しておきます。NSAttributedStringの文字列に、フォントや改行幅等を設定する。 この文字列を引数として、CTFrameSetterを初期
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く