2

このようなものが必要です http://anishusite.appspot.com/hbimgs/Bills220.png

ナビゲーション バーから日付を変更できるようにするには ... これはどのように行われますか? 数千のボタンと日付ラベル付きのビューを備えたツールバーを追加しようとしましたが、うまく機能しません

http://osmorphis.blogspot.ro/2009/05/multiple-buttons-on-navigation-bar.html

コードは次のとおりです。

  //first create the view 
UIView *titleView = [[UIView alloc] initWithFrame:CGRectMake(0, 6, 157, 33)];
[titleView setBackgroundColor:[UIColor clearColor]];

//add the buttons to the view
UIButton *prevButton = [UIButton buttonWithType:UIButtonTypeCustom];
[prevButton setFrame:CGRectMake(0, 1, 32, 32)];
[prevButton setBackgroundImage:[UIImage imageNamed:@"36-circle-west"] forState:UIControlStateNormal];
[prevButton addTarget:self action:@selector(prevMonth) forControlEvents:UIControlEventTouchUpInside];
[titleView addSubview:prevButton];


UIButton *nextButton = [UIButton buttonWithType:UIButtonTypeCustom];
[nextButton setFrame:CGRectMake(145, 1, 32, 32)];
[nextButton setBackgroundImage:[UIImage imageNamed:@"20-circle-east"] forState:UIControlStateNormal];
[nextButton addTarget:self action:@selector(nextMonth) forControlEvents:UIControlEventTouchUpInside];
[titleView addSubview:nextButton];

[self.dateLabel setFrame:CGRectMake(33, 1, 90, 33)];
[self.dateLabel setBackgroundColor:[UIColor clearColor]];
[self.dateLabel setTextAlignment:UITextAlignmentCenter];

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterNoStyle];
[dateFormatter setTimeStyle:NSDateFormatterNoStyle];
[dateFormatter setDateFormat:@"MMMM,YYYY"];
NSString *dateString = [dateFormatter stringFromDate:self.beginDate];
NSLog(@"the title date string: %@",dateString);

[self.dateLabel setText:dateString];
[self.dateLabel setTextColor:[UIColor whiteColor]];
[self.dateLabel setBackgroundColor:[UIColor clearColor]];
[self.dateLabel setFont:[UIFont fontWithName:@"System" size:17.0]];

//create the toolbar itself

UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 240, 44)];
[toolbar setBackgroundColor:[UIColor clearColor]];

NSMutableArray *items  = [NSMutableArray arrayWithCapacity:3];

UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addTransaction)];
addButton.style = UIBarButtonItemStyleBordered;


UIBarButtonItem *spacer = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];

UIBarButtonItem *theView = [[UIBarButtonItem alloc] initWithCustomView:titleView];

[items addObject:theView];
[items addObject:spacer];
[items addObject:addButton];

[toolbar setItems:items animated:NO];

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:toolbar];

http://www.shareimages.com/image.php?61601-qpyWmpSfk5.kmpyWmak-screen.png

ご覧のとおり、見栄えがよくありません。ラベルが表示されていません...上半分をタップした場合にのみボタンが機能するようです。(タップすると、メソッドは ok と呼ばれます) ... アイデアはありますか? ところで、ナビゲーション バーには背景画像がありますが、ツールバーはそれを隠しています..なぜですか? クリアカラーの背景でツールバーを作ったのですが……。

4

1 に答える 1

2

UINavigationItem には titleView プロパティがあります。これは、作成した任意のビューに設定できます。したがって、透明な背景を持つ UIToolbar サブクラスを作成し、それにボタンとテキスト ラベルを追加してから、次のようにします。

self.navigationItem.titleView = myCustomView;

myCustomView は、矢印ボタンとラベルを含むビューです。このビューは UIToolbar サブクラスである可能性があります。「UIToolBar は透明ではありませんか?」を参照してください。透明な UIToolbar サブクラスを作成するためのトリックについては、ボタンを追加してください。

フレックス スペーサー、左矢印、UILabels を重ねたカスタム ビュー、右矢印、フレックス スペーサー

于 2012-08-22T15:05:22.320 に答える