当前位置:  编程技术>移动开发
本页文章导读:
    ▪挪动游戏的国际化运营技巧        移动游戏的国际化运营技巧 许多移动游戏的国际化阶梯是这样的:新西兰——澳大利亚——加拿大——美国。整个阶梯中,美国是最终目标,新西兰是试验田,让开发者能对游戏机制、盈利.........
    ▪ TextView展示插入的图片        TextView显示插入的图片 http://orgcent.com/android-textview-imagespan-imagegetter-setcompounddrawables/ ......
    ▪ UITableView 根本使用方法总结       UITableView 基本使用方法总结  UITableView  基本使用方法         1.   首先,Controller需要实现两个  delegate ,分别是  UITableViewDelegate 和  UITableViewDataSource      2.然后 UITableView对象的 delegate.........

[1]挪动游戏的国际化运营技巧
    来源: 互联网  发布时间: 2014-02-18
移动游戏的国际化运营技巧
许多移动游戏的国际化阶梯是这样的:新西兰——澳大利亚——加拿大——美国。整个阶梯中,美国是最终目标,新西兰是试验田,让开发者能对游戏机制、盈利机制、用户获取及用户留存模式进行不断的测试和改进。

对移动游戏开发者来说,提高曝光度对公司盈利至关重要,若能登上App Store是再好不过了,但不是所有游戏都有这个机会,所以游戏运营策略很重要。

首先,自己的产品要过硬,但是好游戏很多,还是有很多无法见天日,那应该采取何种策略?我们曾在《失败怪圈:今天的移动App在重蹈1999年的覆辙》一文中曾讲过,有开发者发布App的其中一种方法就是:先在相似的小市场探路,进行测试,到正式发布的时候才选择真正的目标市场,这样就有更多时间和机会对产品进行调整。

同样在广告公司RTB的记录中,有许多公司都采取了这种方法。比如他们的目标市场是北美和西欧,他们会选择澳洲和新西兰作为试点,因为这里的用户在品味和风格上,都与西方国家高度相似。一般这些公司国际化的步骤是这样的:新西兰——澳大利亚——加拿大——美国,这样一步一个台阶的方式能确保游戏机制、盈利机制、用户获取及用户留存模式的有效运作,也能保证游戏在正式进入真正需要花费大量资金进行营销的大型市场之前能很好发挥作用。还要做的其他工作包括分析用户特征,衡量这些机制下的广告费用及速度等等。

最后,在追求国际化的路上,游戏开发者要避免以下4大错误:

1. 产品发布页面粗糙:许多游戏公司都还没有意识到你的游戏在应用市场页面外观的重要性,如果你的画质粗糙,评分又很低,会吓跑访问你页面的潜在玩家。

2. 做不适合自己的游戏:你游戏的DNA是什么?你真的是一个硬核游戏公司吗?如果不是,就算你花大把的钱也无法撞倒南墙。

3.不注重分析:如果你不理解你的同行、你的用户获取成本以及一个用户的终身价值,你离失败也不远了。

4. 依靠运气:如果你看到别的创业者成功了,觉得那是运气,那就错了,乞求好运不是你的商业策略,也不是你的制胜法宝。

产品迭代真的很重要,你需要在几周内迭代,而不是几个月内迭代,对Android游戏开发者的要求也许更高,如果迭代要快,前面的基础要做好,要打牢,阶梯化的方法是个不错选择。


    
[2] TextView展示插入的图片
    来源: 互联网  发布时间: 2014-02-18
TextView显示插入的图片

http://orgcent.com/android-textview-imagespan-imagegetter-setcompounddrawables/


    
[3] UITableView 根本使用方法总结
    来源: 互联网  发布时间: 2014-02-18
UITableView 基本使用方法总结

 UITableView  基本使用方法

 

 

    1.   首先,Controller需要实现两个  delegate ,分别是  UITableViewDelegate 和  UITableViewDataSource

 

   2.然后 UITableView对象的 delegate要设置为 self。

 

   3. 然后就可以实现这些delegate的一些方法拉。

 

       (1)- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;   

         这个方法返回 tableview 有多少个section 

 

        

[cpp] view plaincopy
  • //返回有多少个Sections  
  • - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView   
  • {  
  •     return 1;  
  • }  
  •  

     

     

             (2)- (NSInteger)tableView:(UITableView *)table numberOfRowsInSection:(NSInteger)section;

            这个方法返回   对应的section有多少个元素,也就是多少行。

            

    [cpp] view plaincopy
  • - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section   
  • {  
  •     return 10;  
  • }  
  •  

     

     

             (3)- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath*)indexPath;

                      这个方法返回指定的 row 的高度。

                    - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section;

                      这个方法返回指定的 section的header view 的高度。

                    - (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section;

                      这个方法返回指定的 section的footer view 的高度。

     

              (4)- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath;

                    返回指定的row 的cell。这个地方是比较关键的地方,一般在这个地方来定制各种个性化的 cell元素。这里只是使用最简单最基本

                    的cell 类型。其中有一个主标题 cell.textLabel 还有一个副标题cell.detailTextLabel,  还有一个 image在最前头 叫 

                    cell.imageView.  还可以设置右边的图标,通过cell.accessoryType 可以设置是饱满的向右的蓝色箭头,还是单薄的向右箭头,

                    还是勾勾标记。  

     

                   

    [cpp] view plaincopy
  • - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath   
  • {  
  •     static NSString * showUserInfoCellIdentifier = @"ShowUserInfoCell";  
  •     UITableViewCell * cell = [tableView_ dequeueReusableCellWithIdentifier:showUserInfoCellIdentifier];  
  •     if (cell == nil)  
  •     {  
  •         // Create a cell to display an ingredient.  
  •         cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle   
  •                                        reuseIdentifier:showUserInfoCellIdentifier]   
  •                 autorelease];  
  •     }  
  •       
  •     // Configure the cell.  
  •     cell.textLabel.text=@"签名";  
  •     cell.detailTextLabel.text = [NSString stringWithCString:userInfo.user_signature.c_str()  encoding:NSUTF8StringEncoding];  
  •         }  
  •           
  •  

     

     

     

                 (5)- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section

                   返回指定的 section 的header的高度

     

                    

    [cpp] view plaincopy
  • - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section  
  • {  
  •     if (section ==0)  
  •         return 80.0f;  
  •     else  
  •         return 30.0f;  
  • }  
  •  

     

     

                  (6)- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section

                   返回指定的section 的 header  的 title,如果这个section header  有返回view,那么title就不起作用了。

     

                    

    [cpp] view plaincopy
  • - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section  
  • {  
  •     if (tableView == tableView_)  
  •     {  
  •         if (section == 0)   
  •         {  
  •             return @"title 1";  
  •         }   
  •         else if (section == 1)   
  •         {  
  •             return @"title 2";  
  •         }   
  •         else   
  •         {  
  •             return nil;  
  •         }  
  •     }   
  •     else   
  •     {  
  •         return nil;  
  •     }  
  • }  
  •  

     

     

                  (7) - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section

                      返回指定的 section header 的view,如果没有,这个函数可以不返回view

                    

    [cpp] view plaincopy
  • - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section  
  • {  
  •     if (section == 0)   
  •     {  
  •           
  •         UIView* header = [[[NSBundle mainBundle] loadNibNamed: @"SettingHeaderView"   
  •                                                         owner: self  
  •                                                       options: nil] lastObject];  
  •        
  •         else  
  •         {  
  •            return nil;  
  •         }  
  • }  
  •  

     

     

                  (8)  - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

     

                   当用户选中某个行的cell的时候,回调用这个。但是首先,必须设置tableview的一个属性为可以select 才行。

     

     

                  

    [cpp] view plaincopy
  • TableView.allowsSelection=YES;  
  •  

     

     

                   

    [cpp] view plaincopy
  • cell.selectionStyle=UITableViewCellSelectionStyleBlue;  
  •  

     

                  如果不希望响应select,那么就可以用下面的代码设置属性:

                  

    [cpp] view plaincopy
  • TableView.allowsSelection=NO;  
  •  

     

                  下面是响应select 点击函数,根据哪个section,哪个row 自己做出响应就好啦。

                  

    [cpp] view plaincopy
  • - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath   
  • {  
  •     if (indexPath.section == 1)   
  •     {  
  •         return;  
  •     }  
  •     else if(indexPath.section==0)  
  •     {  
  •         switch (indexPath.row)   
  •         {  
  •             //聊天  
  •             case 0:  
  •             {  
  •                 [self  onTalkToFriendBtn];  
  •             }  
  •                 break;  
  •                   
  •             default:  
  •                 break;  
  •         }  
  •     }  
  •     else   
  •     {  
  •         return ;  
  •     }  
  •       
  • }  
  •  

     

     

                  如何让cell 能够响应 select,但是选中后的颜色又不发生改变呢,那么就设置 

                  cell.selectionStyle = UITableViewCellSelectionStyleNone;

                  

    [cpp] view plaincopy
  • - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath  
  • {  
  •     //cell被选中后的颜色不变  
  •     cell.selectionStyle = UITableViewCellSelectionStyleNone;  
  • }  
  •  

     

     

                (9)如何设置tableview  每行之间的 分割线

                  

    [cpp] view plaincopy
  • self.tableView.separatorStyle=UITableViewCellSeparatorStyleSingleLine;  
  •  

     

                   如果不需要分割线,那么就设置属性为 UITableViewCellSeparatorStyleNone  即可。

     

     

                 (10)如何设置 tableview cell的背景颜色

                  

    [cpp] view plaincopy
  • - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath  
  • {  
  •         //设置背景颜色  
  •         cell.contentView.backgroundColor=[UIColor colorWithRed:0.957 green:0.957 blue:0.957 alpha:1];  
  • }  
  •  

     

     

                 (11) - (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath

     

                   这个函数响应,用户点击cell 右边的 箭头(如果有的话)

     

     

                (12)如何设置tableview 可以被编辑

                   首先要进入编辑模式:

                  

    [cpp] view plaincopy
  • [TableView setEditing:YES animated:YES];  
  •  

     

                   如果要退出编辑模式,肯定就是设置为NO

     

                    - (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath

                    返回当前cell  要执行的是哪种编辑,下面的代码是 返回 删除  模式

                  

    [cpp] view plaincopy
  • - (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath  
  • {  
  •     return UITableViewCellEditingStyleDelete;  
  • }  
  •  

     

     

                  -(void) tableView:(UITableView *)aTableView

    commitEditingStyle:(UITableViewCellEditingStyle) editingStyle

    forRowAtIndexPath:(NSIndexPath *)indexPath

                  通知告诉用户编辑了 哪个cell,对应上面的代码,我们在这个函数里面执行删除cell的操作。

     

     

                  

    [cpp] view plaincopy
  • -(void) tableView:(UITableView *)aTableView  
  • commitEditingStyle:(UITableViewCellEditingStyle) editingStyle  
  • forRowAtIndexPath:(NSIndexPath *)indexPath  
  • {  
  •         [chatArray  removeObjectAtIndex:indexPath.row];  
  •     [chatTableView  reloadData];  
  • }  
  •  

     

     

     

                 (13)如何获得 某一行的CELL对象

     

                   - (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath;


        
    最新技术文章:
    ▪Android开发之登录验证实例教程
    ▪Android开发之注册登录方法示例
    ▪Android获取手机SIM卡运营商信息的方法
    ▪Android实现将已发送的短信写入短信数据库的...
    ▪Android发送短信功能代码
    ▪Android根据电话号码获得联系人头像实例代码
    ▪Android中GPS定位的用法实例
    ▪Android实现退出时关闭所有Activity的方法
    ▪Android实现文件的分割和组装
    ▪Android录音应用实例教程
    ▪Android双击返回键退出程序的实现方法
    ▪Android实现侦听电池状态显示、电量及充电动...
    ▪Android获取当前已连接的wifi信号强度的方法
    ▪Android实现动态显示或隐藏密码输入框的内容
    ▪根据USER-AGENT判断手机类型并跳转到相应的app...
    ▪Android Touch事件分发过程详解
    ▪Android中实现为TextView添加多个可点击的文本
    ▪Android程序设计之AIDL实例详解
    ▪Android显式启动与隐式启动Activity的区别介绍
    ▪Android按钮单击事件的四种常用写法总结
    ▪Android消息处理机制Looper和Handler详解
    ▪Android实现Back功能代码片段总结
    ▪Android实用的代码片段 常用代码总结
    ▪Android实现弹出键盘的方法
    ▪Android中通过view方式获取当前Activity的屏幕截...
    ▪Android提高之自定义Menu(TabMenu)实现方法
    ▪Android提高之多方向抽屉实现方法
    ▪Android提高之MediaPlayer播放网络音频的实现方法...
    ▪Android提高之MediaPlayer播放网络视频的实现方法...
    ▪Android提高之手游转电视游戏的模拟操控
     


    站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3