2

いくつかの背景。私は息子の学校の生徒グループを手伝っています。彼らは、iPod Touch で使用される生徒の観察を管理する簡単な追跡アプリを作成したいと考えています。

私は標準のウィジェットを使用して非常に基本的な iOS 開発を行っただけですが、喜んでお手伝いします。

私たちはアプリの機能とインターフェイスを設計し、設計し、現在プログラミングを開始しています。私が理解できないところは、画面の下部に沿ってストリップを実行し、毎日を日付と日付を表示する小さなブロックとして表示し、その日に観測があったかどうかを示すインジケーターを表示したいということです。

既存のウィジェットか、これを実現する方法を詳細に説明してください。私はいくつかのアプローチを試みましたが、うまくいきませんでした。

これは一般的な要件である必要があることを知っているので、これについての支援をいただければ幸いですが、私はこれを乗り越えるのに苦労しています.

4

2 に答える 2

5

他の人が役に立つと思った場合に備えて、最終的な解決策を投稿すると思いました。

ビュー ルート ビュー コントローラーでは、基本的にテーブルを 90 度回転させてから、各テーブル セルを -90 度回転させるカスタム UITableViewController を追加しました。それは私が望むことはかなり簡単でした。

ルート ビュー コントローラーのコード。これにより、テーブルのサイズと位置が設定されます。

scrollingDateViewController=[[ScrollingDateViewController alloc] initWithNibName:@"ScrollingDateView" bundle:[NSBundle mainBundle]];
CGRect rect=CGRectMake(0,330,320,100);    
scrollingDateViewController.view.frame=rect;
scrollingDateViewController.view.backgroundColor=[UIColor clearColor];
scrollingDateViewController.delegate = self;
[self.view addSubview:scrollingDateViewController.view];

ScrollingDateViewController のキー コード。これにより、テーブルが 90 度回転し、各セルが -90 度回転します。

- (void)viewDidLoad {
today = [[NSDate alloc] init];    
CGRect rect=self.view.frame;
myTableView.frame=rect;
myTableView.layer.transform = CATransform3DRotate(CATransform3DIdentity,1.57079633,0,0,1);
myTableView.backgroundColor=[UIColor clearColor];
myTableView.separatorColor=[UIColor clearColor];
myTableView.frame=rect;
myTableView.rowHeight=44;  // cellWidth
myTableView.showsHorizontalScrollIndicator=NO;
myTableView.showsVerticalScrollIndicator=NO;
myTableView.separatorColor=nil;

}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:@"tableCell"];
if(!cell){
    cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"tableCell"];
    cell.contentView.backgroundColor = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"cell_back.png"]];
    cell.contentView.transform =  CGAffineTransformMakeRotation(-1.57079633);
    cell.selectionStyle=UITableViewCellSelectionStyleGray;

    // Add background image view
    CGRect rect=CGRectZero;
    UIImageView *imgView=[[UIImageView alloc] initWithFrame:rect];
    imgView.contentMode=UIViewContentModeScaleToFill;
    imgView.layer.transform = CATransform3DRotate(CATransform3DIdentity,-1.57079633,0,0,1);
    imgView.tag=101;
    [cell addSubview:imgView];

    rect.origin.x=0;
    rect.origin.y=0;
    rect.size.height=80;
    rect.size.width=44;
    imgView.frame=rect;
    [imgView release];

    // Add Day Label
    UILabel *dayLabel=[[UILabel alloc] initWithFrame:rect];
    dayLabel.layer.transform = CATransform3DRotate(CATransform3DIdentity,-1.57079633,0,0,1);
    dayLabel.tag=102;
    dayLabel.font = [UIFont fontWithName:@"Geogrotesque-Medium" size:14.0];
    dayLabel.textAlignment=UITextAlignmentCenter;
    dayLabel.backgroundColor=[UIColor clearColor];
    dayLabel.textColor=[UIColor darkGrayColor];

    [cell addSubview:dayLabel];
    rect.origin.x=40;
    rect.origin.y=0;
    rect.size.height=44;
    rect.size.width=20;
    dayLabel.frame=rect;
    [dayLabel release];

    // Add Date Label
    UILabel *dateLabel=[[UILabel alloc] initWithFrame:rect];
    dateLabel.layer.transform = CATransform3DRotate(CATransform3DIdentity,-1.57079633,0,0,1);
    dateLabel.tag=103;
    dateLabel.font = [UIFont fontWithName:@"Geogrotesque-Bold" size:18.0 ];
    dateLabel.textAlignment=UITextAlignmentCenter;
    dateLabel.backgroundColor=[UIColor clearColor];
    dateLabel.textColor=[UIColor darkGrayColor];

    [cell addSubview:dateLabel];
    rect.origin.x=55;
    rect.origin.y=0;
    rect.size.height=44;
    rect.size.width=20;
    dateLabel.frame=rect;

    [dateLabel release];
}

UILabel *label=(UILabel*)[cell viewWithTag:102];
label.text= [self getDayString:displayDate];
label=(UILabel*)[cell viewWithTag:103];
label.text= [self getDateString:displayDate];
return cell;

}
于 2011-11-17T06:48:23.233 に答える
1

IMHO、日付ごとに表示するビューを作成する必要があります。次のようなものを作成します

@interface DayView : UIView {

nib で実装するか、drawRect メソッドですべてをプログラムで作成できます。

その後、Xcode のドキュメントに移動し、UIScrollView を検索します。Xcode はコード サンプルを提供します。プロジェクト「Scrolling」を使用して、scrollView の使用方法を確認してください。このサンプルでは、​​写真をスクロールし、それらをカスタム DayView に置き換えます。

幸運を!

于 2011-10-21T06:05:37.043 に答える