`
jsntghf
  • 浏览: 2565135 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

写信息中收信人高度可变的实现

    博客分类:
  • iOS
阅读更多

添加收信人后,收信人区域的高度会自动增长,删除收信人后,收信人区域的高度会相应降低,主要方法如下:

-(void)refreshReceiverView:(int)flag
{	
	if(flag == MSGV_DEL_CONTACT)
	{
		NSMutableArray *temA = [[NSMutableArray alloc] init]; 
		for(GPMsgReceiverView *msgV in [toContainerView subviews])
		{
			[temA addObject:msgV];
			[msgV removeFromSuperview];
		}
		
		receiverRowIndex = 0;
		indexOfFirstNewLine = 0;
		toContainerView.frame = CGRectMake(0.0, 0.0, 320, 44.0+receiverRowIndex*44.0);
		[mainView reloadData];
		
		for(GPMsgReceiverView *msgV1 in temA)
		{
			int count = [[toContainerView subviews] count];
			int length = count - indexOfFirstNewLine;
			
			NSArray *lineCheckArray = [[toContainerView subviews] objectsAtIndexes:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(indexOfFirstNewLine, length)]];
			
			int totalWidth = 0;
			int oldWidth = 0;
			for(GPMsgReceiverView *mv in lineCheckArray)
			{
				totalWidth += mv.frame.size.width;
				oldWidth += mv.frame.size.width;  //some line, from the first to the last
			}
			totalWidth += msgV1.frame.size.width; //check if add current beyond the width
			
			if(totalWidth < 250)
			{
				msgV1.center = CGPointMake(oldWidth + msgV1.frame.size.width/2 + 5.0, 22.0+receiverRowIndex*44.0);
			}
			else 
			{
				indexOfFirstNewLine = [[toContainerView subviews] count];  //-1 then +1
				++receiverRowIndex;
				
				msgV1.center = CGPointMake(msgV1.frame.size.width/2 + 5.0, 22.0+receiverRowIndex*44.0);
			}
			[toContainerView addSubview:msgV1];
		}
		[temA release];
		toContainerView.frame = CGRectMake(0.0, 0.0, 320, 44.0+receiverRowIndex*44.0);
	}
	if(flag == MSGV_ADD_CONTACT)
	{
		toContainerView.frame = CGRectMake(0.0, 0.0, 320, 44.0+receiverRowIndex*44.0);
	}
	[mainView reloadData];
}

 

分享到:
评论

相关推荐

    C#微软培训资料

    5.1 变 量 .44 5.2 常 量 .46 5.3 小 结 .47 第六章 类 型 转 换 .48 6.1 隐式类型转换 .48 6.2 显式类型转换 .53 6.3 小 结 .56 第七章 表 达 式 .58 7.1 操 作 符 .58 7.2 算术操作符和算术...

    超级销售员心态修炼_如何做个人职业规划.pptx

    【超级销售员心态修炼与个人职业规划】 在个人职业规划中,心态扮演着至关重要的角色,尤其是对于超级销售员来说,良好的心态是他们取得成功的...对于任何想要在销售领域取得成就的人来说,这些都是不可或缺的素养。

    基于AT89S52 单片的频率计

    电子系统非常广泛的应用领域内,到处可见到处理离散信息的数字电路。 数字电路制造工业的进步,使得系统设计人员能在更小的空间内实现更多的功 能,从而提高系统可靠性和速度。 集成电路的类型很多,从大的方面可以...

    IT 日语 常用单词 速查

    - **テキストボックスの高さ**(文本框的高度):在用户界面设计中,用于指定文本框高度的属性。 - **メモリー**(内存):计算机中用于存储数据和程序的硬件。 - **各仕様**(各式样):不同规格或型号的产品。 - *...

Global site tag (gtag.js) - Google Analytics