iOS新手入门常见问题1-UITableViewController相关

UITableViewController的TableViewCell的高度自定义

self.tableView.estimatedRowHeight = 88;
self.tableView.rowHeight = UITableViewAutomaticDimension; 

据说这个自动调整rowHeight一事,在iOS前几个版本中比较混乱,存在很多历史遗留问题,这里初学者就不去追究了。 PS:听说iOS8以后系统中rowHeight的默认值已经设置成了UITableViewAutomaticDimension,所以第二行代码可以省略。 是真的吗?我在iOS9上试了一下,是真的。

自定义TableViewCell的布局约束一定不要Cell,指向其ContentView才可以

这一点和上面第一条有关联性,若此处设置约束的参照对象错误,则极有可能TabelViewCell的高度还是实现不了自定义。

UITableViewController中的tableView的TableViewCell要自定义。 对自定义TableViewCell的布局做约束时,不能把里面子控件的参照约束指向Cell本身,一定要指向其ContentView才行。

UILabel一行显示不开,自动分行

label.lineBreakMode = NSLineBreakByWordWrapping;
label.numberOfLines = 0; 

UINavigationController左中右导航项目分别设置

首先左边的导航项目,一般是默认的一个小于号箭头< ,和上一个页面的title

导航条的左边返回键只想要小于号箭头<,不要文字显示

self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:nil]; 

这里我遇到了一个坑,具体是这样的:

从A画面 跳转到 B画面

B画面导航条左侧的返回导航中 我不想要A画面的Title,只想要一个<箭头。

在B画面对应的类中修改上述代码,怎么都不能成功。

而把修改backButtonItem的代码放到A画面对应的类中才可以实现效果。

神奇吧,是我哪地方理解错了吗?我还不知道这是神马原因。

导航条的中间的标题动态设置

这个好办 self.title = @”自定义标题”;

导航条的右边添加自定义项目

下面的例子是添加一个Add默认样式的菜单项目

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(rightItemEvent:)]; 

最后别忘记添加右侧菜单的点击事件 – (void)rightItemEvent:(id)sender { NSLog(@”rightBarButtonItem Clicked…”); }

UIImageView作为父控件(容器)上放置一个UIButton

UIImageView继承自UIView,都是可以当做容器来使用的。

我想把一个UIButton放到一个UIImageView容器之中。直接在StoryBoard上拖拽控件是不能把UIButton放到UIImageView的子控件之中的。

但布局约束等信息可以在StoryBoard可视化的创建与管理,所以这些活就可以在StoryBoard利用Xcode的先进性完成。 把UIButton设置为UIImageView的子控件就可以用代码实现了。

[_imgView addSubview:btn]; 

另外为了让UIImageView上放置的UIButton能点击,还要加上下面一句:

imageView.userInteractionEnabled = YES;