//CGRect NSLog(@"%@",NSStringFromCGRect(testrect)); //CGSize NSLog(@"%@",NSStringFromCGSize(testsize)); //CGPoint NSLog(@"%@",NSStringFromCGPoint(testpoint));
2010年10月28日木曜日
CGRect等のログ表示
2010年10月22日金曜日
UIScrollViewの初期化と設定
scrollRectToVisibleは下端が優先になる。上部起点で表示したい場合は
画面内に収まるCGRectを指定する。
※hファイルに<uiscrollviewdelegate>追加
画面内に収まるCGRectを指定する。
※hファイルに<uiscrollviewdelegate>追加
- (void)viewDidLoad {
[super viewDidLoad];
UIView*contentView=[[UIView alloc]initWithFrame:CGRectMake(0,0,1000,1000)];
UIScrollView*Scroll=[[UIScrollView alloc]initWithFrame:[self.view frame]];
[Scroll addSubview:contentView];
[self.view addSubview:Scroll];
Scroll.contentSize=contentView.frame.size;
Scroll.delegate = self;
CGRect motorect=[self.view frame];
CGRect contentrect=[contentView frame];
//コンテント横が全体に収まるような拡大率を100%(最小表示)とする
//最小表示から5倍まで拡大できる
Scroll.minimumZoomScale = motorect.size.width/contentrect.size.width;
Scroll.maximumZoomScale = modeAScroll.minimumZoomScale*5;
//全体表示する(画面より縦長だと左上表示) YESでアニメーションあり
[Scroll setZoomScale:Scroll.minimumZoomScale animated:NO];
[Scroll scrollRectToVisible:CGRectMake(0,0,1,1) animated:NO];
}
//ズームする場合は必要
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
return contentView;
}
UIViewの原点をかえる(未確認)
回転などの原点をかえるときに役立ちそう。
あとで確かめてみます
CGPoint pp;
pp = CGPointMake(0,0);
[self.view.layer setAnchorPoint:pp];
あとで確かめてみます
CGPoint pp;
pp = CGPointMake(0,0);
[self.view.layer setAnchorPoint:pp];
UIButtonのタイトルを複数行にする
ボタンにlineBreakModeを無理矢理設定する。通常はラベルに使うプロパティ。
ただし2行以上の場合[Btn sizeToFit];をしても、横長になってしまうため
ボタンの大きさは自分で調整する必要がある。
※追記 若干修正とスクリーンショットを追加してみました。
↓↓↓ついでにボタンのプログラム生成手順も。↓↓↓↓
ただし2行以上の場合[Btn sizeToFit];をしても、横長になってしまうため
ボタンの大きさは自分で調整する必要がある。
※追記 若干修正とスクリーンショットを追加してみました。
((UILabel*)Btn).lineBreakMode=UILineBreakModeWordWrap;
↓↓↓ついでにボタンのプログラム生成手順も。↓↓↓↓
- (void)viewDidLoad {
[super viewDidLoad];
UIButton *Btn = [UIButton buttonWithType:
UIButtonTypeRoundedRect];
[Btn setFrame:CGRectMake(0,0, 0.0, 0.0)];
NSString*_name = @"長い長い長い長い長い長い長い長い";
//10字1行として行数をカウント
int column = ((int)([_name length]/10))+1;
//改行コードを10字置きに入れる
NSMutableString*str= [NSMutableString stringWithCapacity:1];
int now = 0;
int last = [_name length]-1;
for(int cnt = 0; cnt < column; cnt++){
if(cnt != column-1){
[str appendFormat:@"%@\n",
[_name substringWithRange:NSMakeRange(now,10)]];
now += 10;
}else{//最後
[str appendString:[_name substringWithRange:
NSMakeRange(now,last-now+1)]];
}
}
//複数行
((UILabel*)Btn).lineBreakMode = UILineBreakModeWordWrap;
//タイトル
[Btn setTitle:str forState:UIControlStateNormal];
//ボタンのサイズ
[Btn setFrame:CGRectMake(0,0,150,(14*column)+30)];
//フォント
[Btn.titleLabel setFont:[UIFont systemFontOfSize:14]];
//文字を中央揃えに
[Btn.titleLabel setTextAlignment:UITextAlignmentCenter];
//文字色
[Btn setTitleColor:[UIColor blackColor]
forState:UIControlStateNormal];
//タグ
[Btn setTag:1];
//アクション登録
[Btn addTarget:self action:@selector(clickButton:)
forControlEvents:UIControlEventTouchUpInside];
//ボタンをビューに追加
[self.view addSubview:Btn];
Btn.center=self.view.center;
}
-(void)clickButton:(UIButton*)sender{
NSLog(@"Click");
}
2010年10月21日木曜日
UIViewの削除について
//retainの場合
UIView *subView=[[UIView alloc]init];
[allView addSubview:subView]
[subView removeFromSuperview];
[subView release];//←ここでsubViewのdeallocが走る
//autoreleaseの場合
UIView *subView=[[[UIView alloc]init]autorelease];
[allView addSubview:subView]
[subView removeFromSuperview];//←ここでsubViewのdeallocが走る
/*[subView release];*///リリースするとエラーになる
リテインで追加直後にリリースした場合、
remove対象はどう指定するのだろうか…。
保持しておくか、subViewsメソッドで該当ビューを探すしかない?
autoreleaseが無難かも…
UIView *subView=[[UIView alloc]init];
[allView addSubview:subView]
[subView removeFromSuperview];
[subView release];//←ここでsubViewのdeallocが走る
//autoreleaseの場合
UIView *subView=[[[UIView alloc]init]autorelease];
[allView addSubview:subView]
[subView removeFromSuperview];//←ここでsubViewのdeallocが走る
/*[subView release];*///リリースするとエラーになる
リテインで追加直後にリリースした場合、
remove対象はどう指定するのだろうか…。
保持しておくか、subViewsメソッドで該当ビューを探すしかない?
autoreleaseが無難かも…
viewの追加する階層とサブビューの一覧を取得する
//ビュー1を一番上に追加
[allView addSubview:View1];
//ビュー2を一番下の階層に追加
[allView insertSubview:View2 atIndex:0];
//ビュー1の階層を一番下に変更
[allView sendSubviewToBack:View1];
//allViewのサブビューを配列で取得
NSArray*viewarray=[allView subviews];
[allView addSubview:View1];
//ビュー2を一番下の階層に追加
[allView insertSubview:View2 atIndex:0];
//ビュー1の階層を一番下に変更
[allView sendSubviewToBack:View1];
//allViewのサブビューを配列で取得
NSArray*viewarray=[allView subviews];
2010年10月18日月曜日
気になっている課題点 走り書き
・技術メモ とてもわかりやすくて整理されている
ttp://i.studio23c.com/
・テン*シー*シー 暇を見つけてiphoneアプリ開発の項目を1から読みたい…
ttp://ameblo.jp/xcc/
・役に立ちそう UIViewから画像生成
ttp://www.insidenet.co.jp/mobile-app/iphone/rev-ref/97-uiviewuiimage-.html
・スクロールビューのズームなど
ttp://ameblo.jp/xcc/entry-10324498888.html
ttp://sygnas.jp/2010/07/11/uiscrollview_scroll/
・巨大画像をスクロールで表示
ttp://d.hatena.ne.jp/KishikawaKatsumi/20090429/1241020420
・高速列挙中に高速列挙のdict,arrayの中身をかえてはいけないらしい
ttp://journal.mycom.co.jp/column/objc/105/index.html
・タップとダブルタップで違うことをさせる
>参考になりそうな記述発見
ttp://d.hatena.ne.jp/KishikawaKatsumi/20090103/1230964461
ttp://cocoadays.blogspot.com/2010/09/3.html
ttp://rosetta-works.blogspot.com/
・UIViewのタップイベントを受け付ける
ttp://d.hatena.ne.jp/eth0jp/20100803/1280777298
・ファイル共有の設定
ttp://d.hatena.ne.jp/paraches/20101009
・web画像の非同期読込み(スクロール対応付き)
ttp://d.hatena.ne.jp/k_kinukawa/20110327/1301219131
ttp://i.studio23c.com/
・テン*シー*シー 暇を見つけてiphoneアプリ開発の項目を1から読みたい…
ttp://ameblo.jp/xcc/
・役に立ちそう UIViewから画像生成
ttp://www.insidenet.co.jp/mobile-app/iphone/rev-ref/97-uiviewuiimage-.html
・スクロールビューのズームなど
ttp://ameblo.jp/xcc/entry-10324498888.html
ttp://sygnas.jp/2010/07/11/uiscrollview_scroll/
・巨大画像をスクロールで表示
ttp://d.hatena.ne.jp/KishikawaKatsumi/20090429/1241020420
・高速列挙中に高速列挙のdict,arrayの中身をかえてはいけないらしい
ttp://journal.mycom.co.jp/column/objc/105/index.html
・タップとダブルタップで違うことをさせる
>参考になりそうな記述発見
ttp://d.hatena.ne.jp/KishikawaKatsumi/20090103/1230964461
ttp://cocoadays.blogspot.com/2010/09/3.html
ttp://rosetta-works.blogspot.com/
・UIViewのタップイベントを受け付ける
ttp://d.hatena.ne.jp/eth0jp/20100803/1280777298
・ファイル共有の設定
ttp://d.hatena.ne.jp/paraches/20101009
・web画像の非同期読込み(スクロール対応付き)
ttp://d.hatena.ne.jp/k_kinukawa/20110327/1301219131
登録:
投稿 (Atom)
