当前位置: 编程技术>移动开发
本页文章导读:
▪相仿九宫格的tableViewCell 类似九宫格的tableViewCell
晚年也过了,新的一年真正来临了,迎着太阳向着远方,来冒个泡
之前看到有花香太奇的九宫格,纯button实现的,感觉table更好用,就写了tableviewcell的,不是很难,主要还.........
▪ R.java丢掉后怎样重新生成[收集] R.java丢失后怎样重新生成[收集]
第1种方法:
右击工程->选择Android Tools->选择Fix Project Properties
第2种方法:
右击工程->选择Properties->选择 Android->Apply
ps:
我下载Android的Launcher2源码导.........
▪ 【转】告诉友人Intent 【转】告诉朋友Intent
Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_TEXT,getResources().getString(R.string.share_message));
intent.setType("text/plain");
startActivity(Intent.createChooser(intent,getResources().get.........
[1]相仿九宫格的tableViewCell
来源: 互联网 发布时间: 2014-02-18
类似九宫格的tableViewCell
晚年也过了,新的一年真正来临了,迎着太阳向着远方,来冒个泡
之前看到有花香太奇的九宫格,纯button实现的,感觉table更好用,就写了tableviewcell的,不是很难,主要还是view多了,怎么区分的问题,先上代码吧
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ int row=indexPath.row; NSString *indentifier=@"cell"; UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:indentifier]; if(cell==nil){ cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:indentifier]; int width=(1024-320-itemNumPerRow*10)/itemNumPerRow; for(int i=0;i<itemNumPerRow;i++){ MediaView *itemView=[[MediaView alloc] initWithFrame:CGRectMake(i*width+10, 0, width, RowHeight)]; itemView.backgroundColor=[UIColor clearColor]; itemView.delegate=self; [itemView setTag:i+1]; itemView.mediaTag=row*itemNumPerRow+i+1; itemView.mediaImage=[UIImage imageNamed:@"aaa.png"]; [cell.contentView addSubview:itemView]; } } else{ for(int i=0;i<itemNumPerRow;i++){ MediaView *itemView=(MediaView *)[cell.contentView viewWithTag:i+1]; itemView.mediaTag=row*itemNumPerRow+i+1; itemView.mediaImage=[UIImage imageNamed:@"aaa.png"]; } } cell.selectionStyle=UITableViewCellSelectionStyleNone; return cell; }
MediaView是自定义的view,重写了一下draw函数,复杂的话还可以加入响应的按钮和delegate之类的
#import <UIKit/UIKit.h> #define MarginLeft 10 #define MarginRight 10 #define MarginTop 10 #define MarginBottom 35 @interface MediaView : UIView { UIImage *mediaImage; int mediaTag; } @property int mediaTag; #import "MediaView.h" @implementation MediaView - (void)drawRect:(CGRect)rect { // Drawing code. int imageWidth=self.frame.size.width-MarginLeft-MarginRight; int imageHeight=self.frame.size.height-MarginTop-MarginBottom; CGRect imageRect=CGRectMake(MarginLeft, MarginTop, imageWidth, imageHeight); [self.mediaImage drawInRect:imageRect]; CGRect textRect=CGRectMake(MarginLeft, self.frame.size.height-MarginBottom, imageWidth, MarginBottom); [[UIColor blueColor] set]; [@"test" drawInRect:textRect withFont:[UIFont systemFontOfSize:15]]; }
我一直习惯用if--else来填充cell,if里面初始化各种view的UI,并且设置相对固定的tag,else里面根据tag找到重用的控件,动态填充数据,动态的部分是用mediaTag来实现的
PS:有人问过有木有demo,从项目中抽了出来
1 楼
gekie
2011-07-26
有贴图更好。
[2] R.java丢掉后怎样重新生成[收集]
来源: 互联网 发布时间: 2014-02-18
R.java丢失后怎样重新生成[收集]
第1种方法:
右击工程->选择Android Tools->选择Fix Project Properties
第2种方法:
右击工程->选择Properties->选择 Android->Apply
ps: 我下载Android的Launcher2源码导入后就遇到了这样的情况,感谢网络上的分享。
[3] 【转】告诉友人Intent
来源: 互联网 发布时间: 2014-02-18
【转】告诉朋友Intent
Intent intent = new Intent(Intent.ACTION_SEND); intent.putExtra(Intent.EXTRA_TEXT,getResources().getString(R.string.share_message)); intent.setType("text/plain"); startActivity(Intent.createChooser(intent,getResources().getString(R.string.share_lable)));
最新技术文章: