スライドショーの使用しているクラス(1)

2010. 06. 09
前回作った『基礎からのiPhone SDK 改訂版』の『スライドショーの作成』に関して、内容を掘り下げたいと思います。


●Slide.hで使用しているクラス

Slide.hでアウトレットに使用しているクラスを以下に太字で示します。

NSObject
    |
    ∟UIResponder
            |
            ∟UIView
                    |
                    ∟UIImageView
                    |
                    ∟UIToolbar
                    |
                    ∟UIControl
                            ∟UIButton
                            ∟UISegmentedControl
                            ∟UISlider

この内、UIToolbarクラスの概要については『ウェブブラウザの使用しているクラス』を参照してください。


●UIImageViewクラス

イメージビューオブジェクトは、単一の画像またはアニメーションをするための一連の画像を表示する、ビューベースのコンテナを提供します。

画像のアニメーションについては、UIImageViewクラスはアニメーションを行う時間と更新頻度を制御する機能を提供します。

またアニメーションの開始と停止は自由に行えます。

新しいイメージビューオブジェクトは、デフォルトでユーザイベントを無視するように構成されています。

UIImageViewのカスタムサブクラスでイベントの処理を行いたい場合は、オブジェクトを初期化した後で、明示的にuserInteractionEnabledプロパティの値をYESに変更する必要があります。

サブクラス化の注意

特別な考慮事項

UIImageViewクラスは、ディスプレイに画像を描画することに最適化されています。

UIImageViewのサブクラスはdrawRect:を呼び出せません。

サブクラスでカスタムの描画コードが必要な場合は、基本クラスであるUIViewを使用することを推奨します。


●UIButtonクラス

UIButtonクラスのインスタンスは、タッチスクリーン上にボタンを実装します。

ボタンをタップすると、タッチイベントを検出し、ターゲットオブジェクトにアクションメッセージを送信します。

ターゲットとアクションを設定するメソッドは、UIControlから継承しています。

このクラスは、ボタンのタイトル、画像、その他の外観を設定するメソッドを提供します。

これらのアクセサを使用して、各ボタンの状態を異なる外観に指定することができます。


●UISegmentedControlクラス

UISegmentedControlオブジェクトは、水平方向に並べられた複数のセグメント(部分)で構成され、各セグメントに機能を分離させたボタンです。

セグメンテッドコントロールは、制御用の番号が割り振られた一つのグループを提供します。

セグメンテッドコントロールは、(NSStringオブジェクトの)タイトルや(UIImageオブジェクトの)画像を表示することができます。

UISegmentedControlオブジェクトは、特定の幅設定がない限り、スーパービュー内に収まるようにセグメントのサイズを自動的に調整します。

セグメントの追加や削除を行う際には、スライドやフェードのアニメーションで動作を表すこともできます。

セグメンテッドコントロールを使用するには、ターゲットアクションメソッドにUIControlEventValueChanged定数を登録します。

[segmentedControl addTarget:self action:@selector(action:) forControlEvents:UIControlEventValueChanged];

セグメンテッドコントロールの表示の動作について設定することもできます。

・セグメンテッドコントロールは瞬間のスタイルの設定として、ユーザがタッチして選択したセグメントの背景を青くすることができます。
ボタンの表示は常に瞬間的なもので、実際の選択には作用しません。

・iPhone OS 3.0より前は、セグメンテッドコントロールは2つのセグメントしか持てず、現在選択されているセグメントをタップすると、スイッチのように他のセグメントが選択される原因となります。
(iPhone OS 3.0以降では、現在選択されているセグメントをタップしても、他のセグメントを選択する原因とはなりません)


●UISliderクラス

UISliderオブジェクトは、連続した値の範囲から単一の値を選択するのに使うビジュアルコントロールです。

スライダは常に水平のバーとして表示します。

スライダのインジケータまたはサム(つまみ)は現在の値を示しており、ユーザが動かして値を変えることができます。

スライダの外観のカスタマイズ

スライダの外観をカスタマイズする最も一般的な方法は、最小値と最大値にカスタムの画像を提供することです。

これらの画像はスライダコントロールのどちらかの端に位置し、スライダの端の値を表します。

例えばスライダをボリュームの制御に使う場合、最小値側には音波の出ていない小さなスピーカを、最大値側には音波を発する大きなスピーカを表示するという使い方ができます。

スライダのバーの上に乗っているサムはトラックと呼ばれます。

スライダコントロールはトラックの描画に2つの異なる画像を使用し、それぞれカスタマイズできます。

サムとスライダの最小値までの間の領域の描画には、minimum track imageを使います。

サムとスライダの最大値までの間の領域の描画には、maximum track imageを使います。

異なるトラックの画像は、最小値の端までの間の状況を、要求に応じて提供します。

例えば、minimum track imageは通常青いハイライトを含み、maximum track imageは白いハイライトを含みます。

スライダのコントロールの状態に応じて異なるトラックの画像のペアを割り当てることができます。

スライダの外観は、有効や無効、ハイライトなどの状態それぞれに異なる画像を割り当ててカスタマイズすることができます。

トラックの画像のカスタマイズに加えて、サムの外観もカスタマイズすることもできます。

トラックの画像と同様に、スライダのコントロールの状態に応じて、異なるサムの画像を割り当てることができます。

注:スライダコントロールは、トラックとサムの両方の画像をセットで、デフォルトで提供します。

カスタムの画像を指定しない場合は、自動的にデフォルトの画像が使用されます。



参考文献

UIImageView Class Reference

UIButton Class Reference

UISegmentedControl Class Reference

UISlider Class Reference

基礎からのiOS SDK基礎からのiOS SDK
(2010/10/09)
鶴薗 賢吾、松浦 健一郎 他

商品詳細を見る






Wave SoundTouch music system IV
0 Comments
Leave a comment
管理者にだけ表示を許可する
Top
0 Trackbacks
Top
Calendar
06 | 2017/07 | 08
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 31 - - - - -
Recent Articles
iTunes


Swift
Categories
Tips
Profile

水月杏香

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

Wish List
WACOM


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

Wave SoundTouch music system IV
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