UITextViewに閉じるボタンをつける

iPhone

// ツールバーの作成
viewdidloadに、

UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
toolBar.barStyle = UIBarStyleBlackOpaque; // スタイルを設定
[toolBar sizeToFit];

// フレキシブルスペースの作成(Doneボタンを右端に配置したいため)
UIBarButtonItem *spacer = [[UIBarButtonItem alloc] UIBarButtonItemSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];

// Doneボタンの作成
UIBarButtonItem *done = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(closeKeyboard:)];

// ボタンをToolbarに設定
NSArray *items = [NSArray arrayWithObjects:spacer, done, nil];
[toolBar setItems:items animated:YES];

// ToolbarをUITextFieldのinputAccessoryViewに設定
テキストビュー.inputAccessoryView = toolBar;
}

  • (void)closeKeyboard:(id)sender{

[テキストビュー resignFirstResponder];
}

UITextFieldに余白をつけて良い感じの表示にする【サンプルコード】

iPhone

UITextFieldを使うと、文字が上に、左に寄っていて見た目が悪い。
その場合、左に余白をつけ、文字を縦中央にしたら良い感じに鳴ります。

 UIView *paddingView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 5, 30)];
 paddingView.opaque = NO;
 paddingView.backgroundColor = [UIColor clearColor];
 textField.leftView = paddingView;
 textField.leftViewMode = UITextFieldViewModeAlways;
 textField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;

UITableViewで初期表示の画面位置を指定

iPhone

【使用例】
TableViewControllerを使っていて、
「このページを開いたとき、このページのこの箇所を最初に見せたいんだよね」って時に使います。

【コード】
 int cellHeight = cellの高さ;
 int cellCount = cellの数;
  [self.tableView setContentOffset: CGPointMake( 0, cellHight * cellCount)];

UITableViewCellの高さを可変にする

iPhone

“- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath”に以下を書き込めばよし!
UILabelを追加せずに、uitableviewcellの中のlabelの高さを変化させます

        float cellHeight;
        
        UITableViewCell *cell = [self tableView:tableView
                          cellForRowAtIndexPath:indexPath];
        CGSize size = [cell.textLabel.text sizeWithFont:cell.textLabel.font
                                      constrainedToSize:tableView.frame.size
                                          lineBreakMode:UILineBreakModeWordWrap];
        
        cellHeight = size.height;
        return cellHeight + 15;
       

UITabbarcontroller間での値の受け渡し

iPhone

UITabbarcontrollerを使用していて、表示しているタブから別のタブのRootViewcontrollerへ移動して値を受け渡したいとき。

プログラムで移動する場合

 //遷移先のタブ
 UITabBarController* resultsTab =
  (UITabBarController*)[[self.tabBarController viewControllers] objectAtIndex:2];
 
 //遷移先のrootViewController
 UIViewController* resultVC = [[resultsTab viewControllers] objectAtIndex:0];
 resultVC.string = @"受け渡したい文字列";
 
 //遷移先へ移動
 [self.tabBarController setSelectedViewController: resultsTab];

これで、タブ移動での遷移先に値を受け渡すことができます!!!