DetailsViewCell

本文介绍了一个自定义UITableViewCell的实现方式,包括布局设置、文本显示调整等。通过代码展示了如何创建带有灰色背景、标题和摘要的单元格,并实现了根据不同文本长度调整高度的功能。
部署运行你感兴趣的模型镜像



#import <UIKit/UIKit.h>

@interface DetailsViewCell : UITableViewCell
{
//灰色背景
UIView *_lab_BgView;
UILabel *_lab_Mask;
//正常状态
UILabel *_lab_Title;
//伸开状态
UILabel *_lab_Summary;


}
@property (retain,nonatomic)UILabel *lab_Title;
@property (retain,nonatomic)UILabel *lab_Summary,*lab_Mask;
-(CGFloat)heightForSummaryLabel;

@end

#import "DetailsViewCell.h"
#define CELLHEIGHT 50
@implementation DetailsViewCell
@synthesize lab_Summary=_lab_Summary;
@synthesize lab_Title=_lab_Title,lab_Mask=_lab_Mask;
//
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
_lab_BgView=[[UIView alloc]initWithFrame:CGRectMake(0, 0, 50, 50)];
[self insertSubview:_lab_BgView belowSubview:self.imageView];
//
_lab_Mask=[[UILabel alloc]init];
[self insertSubview:_lab_Mask belowSubview:_lab_Mask];
//title
_lab_Title=[[UILabel alloc]init];
[self.contentView addSubview:_lab_Title];
//Summary
_lab_Summary=[[UILabel alloc]init];
_lab_Summary.numberOfLines=0;
_lab_Summary.lineBreakMode=NSLineBreakByWordWrapping;
_lab_Summary.textColor=[UIColor colorWithRed:78.0/256 green:78.0/256 blue:78.0/256 alpha:1.0];
_lab_Summary.font=[UIFont fontWithName:@"Arial" size:12];
[self.contentView addSubview:_lab_Summary];
}
return self;
}

- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
[super setSelected:selected animated:animated];

// Configure the view for the selected state
}

-(void)drawRect:(CGRect)rect
{
[super drawRect:rect];
_lab_BgView.backgroundColor=[UIColor colorWithRed:236.0/266 green:234.0/266.0 blue:227.0/256 alpha:1.0];
_lab_BgView.alpha=0.3;

_lab_Mask.backgroundColor=[UIColor colorWithRed:236.0/266 green:234.0/266.0 blue:227.0/256 alpha:1.0];
_lab_Mask.alpha=0.3;
//
_lab_Title.backgroundColor=[UIColor clearColor];
_lab_Summary.backgroundColor=[UIColor clearColor];

}
-(CGFloat)heightForSummaryLabel
{
if (_lab_Summary.text !=nil )
{
CGSize sizeForFit=CGSizeMake(self.frame.size.width-CELLHEIGHT-40, 300);
UIFont *fontForFit=[UIFont fontWithName:@"Arial" size:12];
CGSize textSize=[_lab_Summary.text sizeWithFont:fontForFit constrainedToSize:sizeForFit lineBreakMode:NSLineBreakByWordWrapping];
return textSize.height+10;
}else{
return 0;
}
}
-(void)layoutSubviews
{
[super layoutSubviews];
//灰色背景
[_lab_BgView setFrame:CGRectMake(10, 0, CELLHEIGHT, CELLHEIGHT)];
//imageView center
CGPoint p=CGPointMake(CELLHEIGHT/2.0, CELLHEIGHT/2.0-3);
self.imageView.center=p;
//详细页面左边的灰色
[_lab_Mask setFrame:CGRectMake(10, CELLHEIGHT, CELLHEIGHT, self.frame.size.height-CELLHEIGHT)];
//详细页面title内容
[_lab_Title setFrame:CGRectMake(CELLHEIGHT+12, 0, self.frame.size.width-CELLHEIGHT-35, CELLHEIGHT)];
//详细页面summary内容
[_lab_Summary setFrame:CGRectMake(CELLHEIGHT+12, CELLHEIGHT-8, self.frame.size.width-CELLHEIGHT-35, [self heightForSummaryLabel])];
//

}


@end


您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

【RIS 辅助的 THz 混合场波束斜视下的信道估计与定位】在混合场波束斜视效应下,利用太赫兹超大可重构智能表面感知用户信道与位置(Matlab代码实现)内容概要:本文围绕“IS 辅助的 THz 混合场波束斜视下的信道估计与定位”展开,重点研究在太赫兹(THz)通信中,由于超大可重构智能表面(RIS)引起的混合近场-远场(混合场)波束斜视效应,对用户信道感知与位置估计带来的挑战。文中提出利用RIS调控电磁波传播特性,结合先进的信号处理算法,在波束斜视影响下实现高精度的信道估计与用户定位,并提供了基于Matlab的代码实现,支持科研复现与进一步优化。研究对于提升未来6G超高速无线通信系统的感知与定位能力具有重要意义。; 适合人群:具备通信工程、信号处理或电子信息等相关专业背景,熟悉Matlab编程,从事太赫兹通信、智能反射面(RIS)或无线定位方向研究的研究生、科研人员及工程师。; 使用场景及目标:① 理解并复现混合场波束斜视效应下的信道建模方法;② 掌握基于RIS的太赫兹系统中信道估计与联合定位算法的设计与实现;③ 为后续开展智能超表面辅助的ISAC(通感一体化)研究提供技术参考和代码基础。; 阅读建议:建议读者结合Matlab代码,深入理解文档中提出的系统模型与算法流程,重点关注波束斜视的数学表征、信道估计算法设计及定位性能评估部分,可通过调整参数进行仿真验证,以加深对关键技术难点和解决方案的理解。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值