2011-06-25 2 views
0

だから、私は明らかに同じラベルを何度も繰り返しています。私はIBで繋がったIBOutlet for UILabelを持っています。私はそれが私のUIScrollViewのために欲しいポジションなので、それをしました。私はまた、私のScrollViewの各ページに新しいラベルが欲しいが、私はそれを行う方法を理解することはできません。UIScrollView addSubView:同じUILabelインスタンスの再追加をどうやって防ぐのですか?

これを達成するための提案はありますか?あなたは何度も同じUILabelインスタンスを再追加する/

AnotherMadeUpViewController.h

#import <UIKit/UIKit.h> 

@interface AnotherMadeUpViewController : UIViewController<UIScrollViewDelegate> 
{ 

    IBOutlet UIPageControl *pageControl; 
    IBOutlet UIScrollView *scroller; 
    IBOutlet UILabel *label; 
} 

@property (nonatomic,retain)IBOutlet UIPageControl *pageControl; 
@property (nonatomic,retain)IBOutlet UIScrollView *scroller; 
@property (nonatomic,retain)IBOutlet UILabel *label; 


-(IBAction)clickPageControl:(id)sender; 

@end 

AnotherMadeUpViewController.m

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    scroller.delegate=self; 
    scroller.pagingEnabled=YES; 
    scroller.directionalLockEnabled=YES; 
    scroller.showsHorizontalScrollIndicator=NO; 
    scroller.showsVerticalScrollIndicator=NO; 
    scroller.contentSize=CGSizeMake(pageControl.numberOfPages*scroller.frame.size.width, scroller.frame.size.height); 
    CGFloat labelOriginX = label.frame.origin.x; 
    CGFloat labelOriginY = label.frame.origin.y; 
    CGFloat scrollWidth = 0; 
    int pageNumber = 0; 
    for (int i=0; i<3; i++) 
    { 
     CGRect rect = label.frame; 
     rect.size.height = label.frame.size.height; 
     rect.size.width = label.frame.size.width; 
     rect.origin.x = labelOriginX + scrollWidth; 
     rect.origin.y = labelOriginY; 
     label.frame = rect; 
     label.text = [NSString stringWithFormat:@"%d", pageNumber]; 
     label.textColor = [UIColor redColor]; 
     [scroller addSubview:label]; 
     pageNumber++; 
     scrollWidth += scroller.frame.size.width; 
    } 
    pageControl.numberOfPages=3; 
    pageControl.currentPage=0; 
    [self.view addSubview:scroller]; 
} 

答えて

1

、その後、何も以外に起こりません - :私は失われていますのでscrollViewのcontentViewでラベルの位置(フレーム)を変更します。そのラベルの8つのコピーを別のフレームのscrollViewに追加する必要があります。 scrollViewの背景に画像を並べ替える場合は、その背景色を+[UIColor colorWithPatternImage: ]

+0

で作成したパターン画像に設定してみてください。Thanks Xissburg。私はそれが起こっていないことを望んでいた。 Interface Builder経由でコンセントを使用している場合は、新しいラベルを作成できますか?ラベルを付けることができないので、できますか? – NateHill

+0

通常、ビューを動的に作成するときは、プログラムで行う必要があります。とにかく、IBで8つのラベルをすべて作成し、それぞれをIBOutletリファレンスにリンクし、各ラベルフレームを個別に設定することもできます。 – xissburg

+0

さて、私は先に進んでそれをしました:-)もう一度感謝Xissburg – NateHill

関連する問題