2012年4月24日火曜日

画面遷移

長押しで逆巻やlikeを出すようにして、デフォルトでは必要最低限のコントローラで遷移させる。ほぼ思惑通りの動きができた。満足。

 ctrlv=[[UIView alloc]initWithFrame:CGRectMake(0, 0, sw, sh)];[self.view addSubview:ctrlv];
 UIImage *nextimg=[UIImage imageNamed:@"next"];UIImage *nextonimg=[UIImage imageNamed:@"next_on"];
 bnext=[UIButton buttonWithType:UIButtonTypeCustom];bnext.alpha=0.7;
 [bnext setImage:nextimg forState:UIControlStateNormal];[bnext setImage:nextonimg forState:UIControlStateHighlighted];
 [bnext setFrame:CGRectMake(sw-nextimg.size.width-10, sh-nextimg.size.height-30, nextimg.size.width,nextimg.size.height)];
 [bnext addTarget:self action:@selector(npost) forControlEvents:UIControlEventTouchUpInside];
 prelong=[[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(dpl)];
 [bnext addGestureRecognizer:prelong];
 [ctrlv addSubview:bnext];
 UIImage *previmg=[UIImage imageNamed:@"prev"];UIImage *prevonimg=[UIImage imageNamed:@"prev_on"];
 bprev=[UIButton buttonWithType:UIButtonTypeCustom];bprev.alpha=0.7;
 [bprev setImage:previmg forState:UIControlStateNormal];[bprev setImage:prevonimg forState:UIControlStateHighlighted];
 [bprev setFrame:CGRectMake(sw-previmg.size.width-10, sh-previmg.size.height-80, previmg.size.width,previmg.size.height)];
 [bprev addTarget:self action:@selector(ppost) forControlEvents:UIControlEventTouchUpInside];

 UIImage *rblgimg=[UIImage imageNamed:@"reblog"];UIImage *rblgonimg=[UIImage imageNamed:@"reblog_on"];
 brblg=[UIButton buttonWithType:UIButtonTypeCustom];brblg.alpha=0.7;
 [brblg setImage:rblgimg forState:UIControlStateNormal];[brblg setImage:rblgonimg forState:UIControlStateHighlighted];
 [brblg setFrame:CGRectMake(sw-rblgimg.size.width-10-nextimg.size.width-10, sh-rblgimg.size.height-30, rblgimg.size.width,rblgimg.size.height)];
 [brblg addTarget:self action:@selector(rblg) forControlEvents:UIControlEventTouchUpInside];
 rllong=[[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(chngrl)];
 [brblg addGestureRecognizer:rllong];
 [ctrlv addSubview:brblg];
 UIImage *likeimg=[UIImage imageNamed:@"like"];UIImage *likeonimg=[UIImage imageNamed:@"like_on"];
 blike=[UIButton buttonWithType:UIButtonTypeCustom];blike.alpha=0.7;
 [blike setImage:likeimg forState:UIControlStateNormal];[blike setImage:likeonimg forState:UIControlStateHighlighted];
 [blike setFrame:CGRectMake(sw-likeimg.size.width-10-previmg.size.width-10, sh-likeimg.size.height-30, likeimg.size.width,likeimg.size.height)];
 [blike addTarget:self action:@selector(like) forControlEvents:UIControlEventTouchUpInside];
- (void)npost{
 if([pvlayer viewWithTag:now]==[pvArr lastObject]) return;
 [[pvlayer viewWithTag:now++] removeFromSuperview];
 [pvlayer addSubview:[pvArr objectAtIndex:now-1]];
 [bprev removeFromSuperview];
}
- (void)ppost{
 if(now==1){[bprev removeFromSuperview];return;}
 [[pvlayer viewWithTag:now--] removeFromSuperview];
 [pvlayer addSubview:[pvArr objectAtIndex:now-1]];
 if(now==1)[bprev removeFromSuperview];
}
- (void)dpl{
 if(now!=1) [ctrlv addSubview:bprev];
 else if([bprev isDescendantOfView:ctrlv])[bprev removeFromSuperview];
}
- (void)rblg{
 NSLog(@"reblog.");
}
- (void)like{
 NSLog(@"like.");
}
- (void)chngrl{
 if([brblg isDescendantOfView:ctrlv]){[brblg removeFromSuperview];[ctrlv addSubview:blike];[blike addGestureRecognizer:rllong];}
 else{[blike removeFromSuperview];[ctrlv addSubview:brblg];[brblg addGestureRecognizer:rllong];}
}

できた。でもコードがださいのよねー。素人まるだし。
reblog,likeなどの実装はまだ。でもだいぶ進んだなー。

0 件のコメント:

コメントを投稿