Hatena::Groupiphone-dev

淡々とめもりんぐ

2010-09-08

[][]おおこれは便利 15:47

http://www.hirano-dept.com/blog/2010/02/iphone-uicolor.html

16進数で指定。

#define HEXCOLOR(c) [UIColor colorWithRed:((c>>16)&0xFF)/255.0 green:((c>>8&0xFF)) /255.0 blue:(c&0xFF)/255.0 alpha:1.0]

色見本

http://www.colordic.org/

個人的には一番ここが好き。

2010-09-07

[]部品のプロパティ参照したりとかってどうやってするの? 14:51

Visual StudioでいうところのコントロールにNameを指定すれば、同じクラスの中ではNameにアクセスすればプロパティ見たり操作したりできる、っていうのをどうやってすればいいんだ!!!Nameってあるけどなんかオブジェクトとして使えるわけじゃないし…とかって悩んでたんだけどやっと解決した。

//hoge.h
@interface hoge:UIViewController{
    IBOutlet UILabel *message;
    IBOutlet UIView *view1;
}

@end

//hoge.m
- (void)viewDidLoad{
    [super viewDidLoad];
//IB使う場合
    message.txt = @"MESSAGE";
    [view1.layer setCornerRadius:10.0];
    [view1.layer setBorderColor:[[UIColor grayColor]CGColor]];

//IB使わない場合(view1に貼り付けてみる)
    UILabel *message2 = [[[UILabel alloc]initWithFrame:CGRectMake(0,0,100,30)] autorelease];
    message2.text = @"MESSAGE2";
    [view1 addSubview:message2];
    [message2 release];
}

IBのほうで作った部品はFile's Ownerから部品へ対応するOutletでリンクすること。これでオブジェクトとコントロールが結びつく。

はー。すげー基本的なことだとはわかってるんだけど、こういうのがわからんのだよなあ。


[][]viewからnavigation Controllerに移動して表示ができた!!! 18:01


やっとできたー。本のとおりから少し変形したらできなくなるとか…もうね…orz

やっていること

  1. MainWindowにViewを貼り付ける。
  2. ViewにさらにNavigationControllerを貼り付けてその中にViewを表示する

問題だったところ

XxxAppDelegate.hで、

/*XxxAppDelegate.h*/
@interface XxxAppDelegate : NSObeject<UIApplicationDelegate>{
    UIWindow *window;
    UIViewController *controller;
}
/*XxxAppDelegate.h*/
@synthesize controller;
(中略)
controller = [[MainViewController alloc]initWithNibName:@"MainView" bundle:[NSBundle mainBundle]];

って宣言してたんだけどインクルードファイルが問題だった様子。貼り付けるViewのサブクラスをMainViewControllerとするとき、ここはUIViewControllerではなくMainViewControllerとすべき、らしい。

ここをUIViewControllerにしていると、"loaded the "*" nib but the view outlet was not set."とか"unrecognized selector sent to instance xxx"とかいわれるらしい。前者のほうは違う原因の気もするけれども…。