如何以编程方式在其上添加UINavigationBar和一个后退按钮 [英] How to programmatically add a UINavigationBar and a back button on it
问题描述
我是新手,试图使用 UITextView
制作类似于iPhone的Notes应用程序的应用程序.我得到了 textView
和行,它工作正常.
I am newbie trying to make an app similar to Notes app of iPhone using UITextView
.
I am getting the textView
and lines and it is working fine.
我的问题是我想添加一个 UINavigationBar
并在其上返回按钮.我想在底部添加一个 UIToolBar
并在其上添加2个toolBarItems如何以编程方式执行此操作.任何帮助都会对我有很大帮助.
My problem is that I want to add a UINavigationBar
and back button on it.
And I want to add a UIToolBar
at the bottom and 2 toolBarItems on it how to do this programmetically. Any help will be a great push up for me..
下面是代码段.
NoteView.h
@interface NoteView : UITextView <UITextViewDelegate,UITabBarControllerDelegate>
{
}
NoteView.m
- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
self.backgroundColor = [UIColor colorWithRed:0.6f green:0.6f blue:1.0f alpha:1.0f];
self.font = [UIFont fontWithName:@"MarkerFelt-Thin" size:20];
self.contentMode = UIViewContentModeRedraw;
}
return self;
}
- (void)drawRect:(CGRect)rect {
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetStrokeColorWithColor(context, [UIColor colorWithRed:0.0f green:0.0f blue:0.0f alpha:0.2f].CGColor);
CGContextSetLineWidth(context, 1.0f);
CGContextBeginPath(context);
NSUInteger numberOfLines = (self.contentSize.height + self.bounds.size.height) / self.font.leading;
CGFloat baselineOffset = 6.0f;
for (int x = 0; x < numberOfLines; x++) {
CGContextMoveToPoint(context, self.bounds.origin.x, self.font.leading*x + 0.5f + baselineOffset);
CGContextAddLineToPoint(context, self.bounds.size.width, self.font.leading*x + 0.5f + baselineOffset);
}
CGContextClosePath(context);
CGContextStrokePath(context);
}
AddNotesViewController.h
@interface AddNotesViewController : UIViewController <UITextViewDelegate,UITabBarDelegate>
{
NoteView *note;
}
@property (nonatomic, retain) NoteView *note;
@end
AddNotesViewController.m
- (void)loadView
{
[super loadView];
self.note = [[[NoteView alloc] initWithFrame:self.view.bounds] autorelease];
[self.view addSubview:note];
note.delegate = self;
note.text=@"";
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
[note setNeedsDisplay];
}
- (void)textViewDidBeginEditing:(UITextView *)textView
{
CGRect frame = self.view.bounds;
frame.size.height -= KEYBOARD_HEIGHT;
note.frame = frame;
}
- (void)textViewDidEndEditing:(UITextView *)textView
{
note.frame = self.view.bounds;
}
- (BOOL)textView:(UITextView *)textView
shouldChangeTextInRange:(NSRange)range
replacementText:(NSString *)text
{
if ([text isEqualToString:@"\n"]) {
[textView resignFirstResponder];
return NO;
}
return YES;
}
请告诉我如何以及在何处添加导航栏,后退按钮和工具栏,上面有2个toolBarItems.谢谢!...
Please tell me how and where to add navigation bar , back button and tool bar ,2 toolBarItems on it.Thanks in advance...
推荐答案
导航栏图像
UINavigationBar *navBar = [[self navigationController] navigationBar];
UIImage *image = [UIImage imageNamed:@"TopBar.png"];
[navBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];
后退按钮
-(void)getBackBtn
{
UIButton *Btn =[UIButton buttonWithType:UIButtonTypeCustom];
[Btn setFrame:CGRectMake(0.0f,0.0f,50.0f,30.0f)];
[Btn setBackgroundImage:[UIImage imageNamed:[NSString stringWithFormat:@"back.png"]] forState:UIControlStateNormal];
//[Btn setTitle:@"OK" forState:UIControlStateNormal];
//Btn.titleLabel.font = [UIFont fontWithName:@"Georgia" size:14];
[Btn addTarget:self action:@selector(backBtnPress:) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithCustomView:Btn];
[self.navigationItem setLeftBarButtonItem:addButton];
}
BackButtonAction
-(IBAction)backBtnPress:(id)sender
{
}
在NavigationBar上查看
For View on navigationBar you can follow my answer Link
这篇关于如何以编程方式在其上添加UINavigationBar和一个后退按钮的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!