Xin chào!ベトナムからiOS担当の川口です。只今ベトナム出張中です。なんだかんだで久々の更新になってしまいました。今回はテキストによってViewのサイズを変えたいときの方法を紹介します。 まず、NSStringクラスのカテゴリを作ってサイズを取得するメソッドをつくりました。 NSString+TextSize - (CGRect)getTextFrameWithFont:(UIFont *)font label:(UILabel *)label padding:(CGFloat)padding { CGSize size; if ([self respondsToSelector:@selector(boundingRectWithSize:options:attributes:context:)]) { //OS7 NSDictionary *attributeDic = @{N
こんにちは、豪(たけし)です。 UITableViewでの縦スクロールが妙に重いケース、良くありますね。 今回はHotel.jpのiPhoneアプリで縦スクロールをスムーズに高速に動かすために 行っていることをご紹介します。 Hotel.jpアプリのホテルの検索結果画面では、1つのセルの中にテキストラベルが 15個+画像2つ、しかもテキストラベル14個は画面左のタブを押すと横移動も するといういかにも重そうなインターフェースなのですが、iPhone4であれば スムーズに縦スクロールします。 検索結果画面 動画(30~40秒目が検索結果画面です) ここ苦労したんです・・・。実装方法をざっとお話します。 最初は楽をしてやろうとUITableViewCellのNibを作ったのですが、 1つのセルにUILabelを15個並べて更に横に移動するようにすると もうスクロールと
◆ 角丸にする [[view layer] setCornerRadius:10.0]; [view setClipsToBounds:YES]; この「view」をUIButtonやUILabelのオブジェクトに変更すれば、角丸になります。 小さめのオブジェクトの場合は、setCornerRadiusを6.0などに変更してやれば ある程度自然な感じになると思います。 ◆ 枠線を追加する [[view layer] setBorderColor:[[UIColor blackColor] CGColor]]; [[view layer] setBorderWidth:1.0]; 枠線を描画することが出来ます。 両方を適用することで、角丸の枠線を追加することも可能です。
//表示する文字 NSString *text = @"あいうえおあいうえおあいうえおあいうえおあいうえおあいうえお"; //表示最大サイズ CGSize bounds = CGSizeMake(100, 500); //フォント UIFont *font = [UIFontfontWithName:@"Helvetica-Bold"size:18]; //表示モード UILineBreakMode mode = UILineBreakModeWordWrap;//改行する //1行だけのサイズを取得 CGSize size = [text sizeWithFont:font forWidth:bounds.width lineBreakMode:mode]; //全体のサイズを取得 CGSize size2 = [text sizeWithFont:font constrainedToS
ラベル表示する時にサイズを動的に調整させたい場合があるかも? そのやり方を書きたいと思います。 結構面倒いので...。 NSStringからCGSizeを取ってくるやり方になります。 CGSizeを取るには、フォントと改行モードと最大サイズの情報が必要です。 インターフェイスの定義です。 @interface ViewController : UIViewController @property (weak, nonatomic) IBOutlet UILabel *label; @endそれで、実装部分は、メソッドにしました。 - (CGSize)generateCGSize:(NSString *)str { // 最大サイズ CGSize maxSize = CGSizeMake(100, 500); // 改行モード UILineBreakMode breakMode = UILi
UIView、UILabel、UIActivityIndicatorViewで「読み込み中」を表示してみる インジケーターをくるくるさせて、何らかの処理中であることを知らせるためのビューを作った際のメモ。 こういったライブラリは以下のようなものが既にあります。 MBProgressHUD - GitHub SVProgressHUD - GitHub 実際はライブラリを使ったほうが良いと思いますが、今回はちょっとやってみたくなったので。 完成図 開発環境、プロジェクト開発環境は、Xcode4.3.3、エミュレータはiPhone iOS5.1です。プロジェクトは「Single View Application」を選択。 ソースコードViewの角を丸くするのには「QuartzCore.framework」を使用します。プロジェクトへの追加をお忘れなく。 ViewController.h #im
UITableViewのsection毎のタイトルのスタイルを変更する方法のメモ。 通常だと - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section { return @"section title"; } こんな感じでセクション毎のタイトルを設定出来る。 これを - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { UIView *v = [[UIView alloc] init]; // 背景に画像をセットする v.backgroundColor = [UIColor blackColor]; UILabel *lbl = [[UIL
@interface UILabel (resize) - (void) resizeWithPoint: (CGPoint)point; - (id) initWithText:(NSString *)text andFont:(UIFont *)font; - (id) initWithText:(NSString *)text andFont:(UIFont *)font andPoint:(CGPoint)point; - (CGRect)resizedFrameWithPoint: (CGPoint)point; @end @implementation UILabel (resize) - (void)resizeWithPoint:(CGPoint)point { self.frame = [self resizedFrameWithPoint:point]; } - (id
iOS 6 から、UILabel, UITextView, UITextFieldに、attributedText というNSAttributedString型のプロパティが追加されました。NSAttributedStringは文字列の属性を管理するクラスで、これを使用するとフォントや文字色、背景色、カーニング等の属性をテキスト内の指定範囲に対して適用することができるようになります。 基本的な実装手順 基本的な手順は次の通りです。 1. NSMutableAttributedStringオブジェクトを生成 initWithString:メソッドでオブジェクトを生成します。 NSString *str = @"NSAttributedString Sample"; NSMutableAttributedString *attrStr; attrStr = [[NSMutableAttribu
TokoTokoSoftwareiPhone / iPadアプリを作っている団体「トコトコ」です 大学生二人でMacBookつかって頑張ってます!! Tips : [UILabelで文字を上寄せ(上付き)で表示する方法] UILabelは標準で文字を表示するときは 左に詰めたり 真ん中に寄せたり 右に寄せたり できますけど、 大きなUILabelに少しだけ文字を表示するとわかりますが ビューの真ん中に文字が表示されてしまいますよね? 上に文字を寄せたい場合 標準ではできないため自分で上に寄せなきゃいけません。 その場合「表示しようとする文字がどれだけの縦サイズになるかを計算して、UILabelのサイズを変更する」という手段が必要です。 手順は 1, UILabelのサイズからNSString の sizewithfontメソッドを使ってサイズを取得 2、 そのサイズでUILabelをリサイ
UITableViewについて¶ TableViewにおいていくつか気をつけておくと良いことがあります。 下記を参考に書いています。 iOS開発におけるパターンによるオートマティズム Pro iOS Table Views timd/Pro-iOS-TableViews Cellの表示更新を別のメソッドに分ける¶ tableView:cellForRowAtIndexPath: のdelegateメソッドでそれぞれのUITableViewCellを生成しますが、 このメソッド内で、Cell内容を更新する処理を直接書くのは避けましょう。 - (void)updateCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath { // Update Cells } - (UITableViewCell *)tableVie
One recent iPhone design mockup called for a glowing effect for a UIButton. This can be accomplished with images, however I needed a series of buttons to have the same glow effect, and it can easily be accomplished with Core Graphics. The first step is to include the Core Graphics headers: #import <QuartzCore/QuartzCore.h> Next, the effect is achieved by using a shadow with no offset (meaning the
こんにちは、共同開発部 iOS アプリ開発担当の図子です。 iOS 開発をしている皆さんはメモリリークのチェックを行っていると思います。どのような方法で確認していますか?おそらく以下のような方法で行っていると思います。 ・Static Analyzer を使う ・Instruments の Leaks テンプレート でも、これだけでは見つからないメモリリークが起こりうることをご存じでしょうか? addSubview: で何枚もの View を貼っていないか? 実際にメモリリークと呼べるかどうかは微妙かも知れませんが、開発者の意図しない不要なメモリがドンドン確保される可能性があるのでここではメモリリークと書かせていただきます。 非常に気付きにくいメモリリークとは view に addSubview: する際に起こりやすいのです。 以下のコードを見てください。ある UIViewControll
UILabelはiOSアプリ開発において使用頻度の高いUIコンポーネントですが、カユいところに手が届かなかったりします。例えばテキストの一部だけ強調表示したい、色を変えたい、フォントを変えたいといったHTMLのような使い方ができません。 iOS6以上であれば、attributedText というNSAttributedStringオブジェクトをセットできるプロパティを標準で持っているので、そのままでテキストの装飾が可能なのですが、残念ながらiOS5以下では使えません。 OHAttributedLabelとTTTAttributedLabelは、そんなUILabelの機能を拡張するOSSです。 OHAttributedLabel 特長 NSAttributedString をラップして UILabel に持たせたもので、テキストの一部だけフォントや色を変えたり、リンクの付与といった指定が簡単
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く