Simple Table(4)~フォントと行高の変更

2010. 11. 02
●フォントサイズの変更

893

テーブルビューセルのフォントを変更するには、UITableViewDataSourceプロトコルのtableView:cellForRowAtIndexPath:メソッド内でfontプロパティを指定します。
(太字が追加した部分)

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *SimpleTableIdentifier = @"SimpleTableIdentifier";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:SimpleTableIdentifier];

    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:SimpleTableIdentifier] autorelease];
    }

    NSUInteger row = [indexPath row];
    cell.textLabel.text = [listData objectAtIndex:row];
    cell.font = [UIFont boldSystemFontOfSize:80];
    UIImage *image = [UIImage imageNamed:@"sw.png"];
    cell.imageView.image = image;
    return cell;
}

892

Pickers(7)~DependentComponentPicker(2)』でも触れていますが、サイズ変更に使用しているboldSystemFontOfSize:メソッドはサイズ変更と太字化を行います。

(サイズを指定せずに)太字化だけを行うことはできませんが、サイズ変更だけならsystemFontOfSize:を使うこともできます。

また、fontプロパティもiOS 3.0で非推奨になっていますので、textLabelに置き換えます。
(太字が修正した部分)

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *SimpleTableIdentifier = @"SimpleTableIdentifier";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:SimpleTableIdentifier];

    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:SimpleTableIdentifier] autorelease];
    }

    NSUInteger row = [indexPath row];
    cell.textLabel.text = [listData objectAtIndex:row];
    cell.textLabel.font = [UIFont systemFontOfSize:80];
    UIImage *image = [UIImage imageNamed:@"sw.png"];
    cell.imageView.image = image;
    return cell;
}

894

textLabelに置き換えるついでにsystemFontOfSize:にしてみました。

895


font

@property(nonatomic, retain) UIFont *font

タイトルのフォントです。
(iOS 3.0では非推奨です。フォントの設定には代わりにUILabelオブジェクトを割り当て、textLabeldetailTextLabelプロパティを使用してください)

このプロパティのデフォルト値はnilであり、UITableViewCellはデバイスに最適な標準フォントを使用します。


systemFontOfSize:

+ (UIFont *)systemFontOfSize:(CGFloat)fontSize

標準インターフェイスのアイテムとして使用するため、指定したサイズでフォントオブジェクトを返します。

fontSize:フォントのサイズをポイント単位で指定します。
この値は0.0より大きくする必要があります。


●行高の変更

行の高さを変更するには、UITableViewDelegateプロトコルのtableView:heightForRowAtIndexPath:メソッドを使用します。

デリゲートメソッドの記述の下にtableView:heightForRowAtIndexPath:メソッドを追加します。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    return 90;
}

896

サンプルコードでは高さを180ポイント(ピクセル)としていますが、ここでは90ポイントにしています。

897

実際の表示では、行間に入る1ピクセルのグレーの線1本分も含みます。

戻り値はCGFloatですが試してみた所、90.4ポイントでは90ピクセルに、90.5ポイントでは91ピクセルで表示されました。


tableView:heightForRowAtIndexPath:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

指定した場所の行に適用される高さをデリゲートに尋ねます。

戻り値は、指定した行の高さをポイントで表した浮動小数点値になります。

このメソッドは、指定した行の高さの変更をデリゲートに与えます。

このメソッドを実装すると、指定した行はUITableVIewのrowHeightプロパティで指定されている値をオーバーライドします。

rowHeightプロパティでパフォーマンスに影響が出る場合は、代わりにtableView:heightForRowAtIndexPath:を使用してください。

常にテーブルビューを表示する時は、各行がデリゲートに対してtableView:heightForRowAtIndexPath:を呼び出すので、(約1000行以上になるような)多数の行を持つテーブルビューではパフォーマンスに重大な結果を与えます。

重要:基本的に実装する際は戻り値が2009より大きくならないようにしてください。

tableView:この情報を要求するテーブルビューオブジェクトを指定します。

indexPath:tableView内の行の位置を示すインデックスパスを指定します。



参考文献

UITableViewCell Class Reference

はじめてのiPhone3プログラミングはじめてのiPhone3プログラミング
(2009/12/17)
Dave Mark、Jeff LaMarche 他

商品詳細を見る






bose_soundlink_revolve
0 Comments
Leave a comment
管理者にだけ表示を許可する
Top
0 Trackbacks
Top
Calendar
03 | 2017/04 | 05
Sun Mon Tue Wed Thu Fri Sat
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 - - - - - -
Recent Articles
iTunes


Swift
Categories
Tips
Profile

水月杏香

Author:水月杏香
永遠の初心者プログラマ。

Wish List
WACOM


ARC
Technical Q&A
情報プロパティリストキー
Start Developing iOS Apps Today
BOSE

bose_soundlink_revolve
Reference
NSApplicationDelegateプロトコル
NSArrayクラス
NSAutoreleasePoolクラス
NSBundleクラス
NSBundle UIKit追加分
NSCalendarクラス
NSCoderクラス
NSCodingプロトコル
NSCopyingプロトコル
NSDataクラス
NSDateクラス
NSDateFormatterクラス
NSDictionaryクラス
NSEntityDescriptionクラス
NSEnumeratorクラス
NSErrorクラス
NSExceptionクラス
NSFetchRequestクラス
NSFileHandleクラス
NSFileManagerクラス
NSIndexPathクラス
NSIndexPath UIKit追加分
NSKeyedArchiverクラス
NSKeyedUnarchiverクラス
NSKeyValueCodingプロトコル
NSLocaleクラス
NSManagedObjectクラス
NSManagedObjectContextクラス
NSManagedObjectModelクラス
NSMutableArrayクラス
NSMutableCopyingプロトコル
NSMutableDictionaryクラス
NSMutableSetクラス
NSNotificationクラス
NSNotificationCenterクラス
NSNullクラス
NSNumberクラス
NSObjectクラス
NSObject UIKit追加分
NSObjectプロトコル
NSPersistentStoreクラス
NSPersistentStoreCoordinatorクラス
NSPredicateクラス
NSPropertyListSerializationクラス
NSRunLoopクラス
NSSetクラス
NSStringクラス
NSString UIKit追加分
NSTimerクラス
NSTimeZoneクラス
NSURLクラス
NSURLProtectionSpaceクラス
NSURLRequestクラス
NSUserDefaultsクラス
NSValueクラス

UIActionSheetクラス
UIActionSheetDelegateプロトコル
UIActivityIndicatorViewクラス
UIAlertViewクラス
UIAlertViewDelegateプロトコル
UIApplicationクラス
UIApplicationDelegateプロトコル
UIBarButtonItemクラス
UIBarItemクラス
UIButtonクラス
UIColorクラス
UIControlクラス
UIDatePickerクラス
UIDeviceクラス
UIEventクラス
UIFontクラス
UIGestureRecognizerクラス
UIImageクラス
UIImageViewクラス
UIKit Function
UILabelクラス
UINavigationControllerクラス
UINavigationItemクラス
UIPickerViewクラス
UIPickerViewDataSourceプロトコル
UIPickerViewDelegateプロトコル
UIPinchGestureRecognizerクラス
UIResponderクラス
UIScreenクラス
UIScrollViewクラス
UISearchBarクラス
UISearchBarDelegateプロトコル
UISegmentedControlクラス
UISliderクラス
UISwipeGestureRecognizerクラス
UISwitchクラス
UITableViewクラス
UITableViewCellクラス
UITableViewControllerクラス
UITableViewDataSourceプロトコル
UITableViewDelegateプロトコル
UITapGestureRecognizerクラス
UITextFieldクラス
UITextFieldDelegateプロトコル
UITextInputTraitsプロトコル
UITextViewクラス
UITextViewDelegateプロトコル
UIToolbarクラス
UITouchクラス
UIViewクラス
UIViewControllerクラス
UIWebViewクラス
UIWebViewDelegateプロトコル
UIWindowクラス

AVAudioPlayerクラス
AVAudioPlayerDelegateプロトコル

CADisplayLinkクラス
CAEAGLLayerクラス
CALayerクラス

CGAffineTransform
CGBitmapContext
CGColor
CGColorSpace
CGContext
CGGeometry
CGImage
CGPath

EAGLContextクラス
EAGLDrawableプロトコル

Foundation Constants
Foundation Data Types
Foundation Functions

MPMediaItemクラス
MPMediaItemArtworkクラス
MPMediaPlaylistクラス
MPMediaPropertyPredicateクラス
MPMediaQueryクラス
MPMusicPlayerControllerクラス

Randomization Services

System Sound Services
Amazon


OpenGL ES
SQLite
Monthly Archives
Recent Comments
Recent TrackBacks
RSS Link
Visitors
QR Code
QR