我们都知道[tableView reloadData];可以将整个tableview的数据刷新,但有些时候我们可能只更改了某一行或多行的数据,不想全部重新来过,怎么办呢?
这就要用到下面这个方法了。
- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation NS_AVAILABLE_IOS(3_0);
示例代码如下:
NSIndexPath *indexPath_1=[NSIndexPath indexPathForRow:1 inSection:0];
NSArray *indexArray=[NSArray arrayWithObject:indexPath_1];
[regTableView reloadRowsAtIndexPaths:indexArray withRowAnimation:UITableViewRowAnimationAutomatic];
详细请点击本人博客
一、实现步骤
1、点击 Window -----> navigation ---》出现如下窗口
2、烘焙场景,在需要巡路的对象上添加Nav mesh Agent组件,
Component ----->navigation ---->Nav mesh Agent
3、在你需要巡路的对象上添加了Nav mesh Agent组件,需要进行合理的设置,如下图,
还需写一个脚本,我这里的脚本是ZhuJueXunLu.cs
代码如下:
using UnityEngine;
using System.Collections;
public class ZhuJueXunLu : MonoBehaviour {
public bool isKaiHui = false; //主角开会
private Vector3 destination;
public void SetIsKaiHui(bool flag){
this.isKaiHui = flag;
}
public bool GetIsKaiHui()
{
return this.isKaiHui;
}
public void Start () {
}
public void Update () {
if(isKaiHui){
destination = SI_Logic.kaiHuiWeiZhi_ZJ;
this.GetComponent<NavMeshAgent>().destination = destination;//目的地
if (this.GetComponent<NavMeshAgent>().hasPath) //还有路程吗?
{
this.animation["Zou"].layer = 1;
this.animation.CrossFade("Zou") ;
}else {
this.animation["DaiJi"].layer = 1;
this.animation.CrossFade("DaiJi");
}
}
}
}
前几章参考:
1-引言
2-Objective-C 编程
3-类、对象和方法
4-数据类型和表达式
建议熟悉C语言,Java语言的同学,迅速简单的过了这一章。我看得很痛苦啊,n年前就知道的东西啦。只能作为复习了。
计算机的基本属性之一就是它能够重复执行一组语句。
这句话很吊。
for语句将按以下步骤执行:
1.先求初始表达式的值。
2.求循环条件的值。
3.执行组成循环体的程序语句。
4.求循环表达式的值。
5.返回到2执行。
如果在一组嵌套循环中执行break语句,仅会推出执行break语句的最内层循环。