UILabel的一些自定义用法的总结
来源:互联网 发布:linux 安装bcompare 编辑:程序博客网 时间:2024/05/20 01:33
1.UILabel的内边距的自定义
.h文件
#import <UIKit/UIKit.h>
@interface MyLabel :UILabel
@property (nonatomic,assign)UIEdgeInsets edgeInset;
- (id)initWithFrame:(CGRect)frame andEdgeInset:(UIEdgeInsets)edgeInset;
- (id)initWithEdgeInset:(UIEdgeInsets)edgeInset;
@end
.m文件
#import "MyLabel.h"
@implementation MyLabel
- (id)initWithFrame:(CGRect)frame andEdgeInset:(UIEdgeInsets)edgeInset{
if (self = [superinitWithFrame:frame]) {
self.edgeInset = edgeInset;
}
return self;
}
- (id)initWithEdgeInset:(UIEdgeInsets)edgeInset{
if (self = [superinit]) {
self.edgeInset = edgeInset;
}
return self;
}
-(void)drawTextInRect:(CGRect)rect{
[superdrawTextInRect:UIEdgeInsetsInsetRect(rect,self.edgeInset)];
}
2.UILabel的垂直对齐方式
.头文件
#import <UIKit/UIKit.h>
typedef enum
{
VerticalAlignmentTop =0, // default
VerticalAlignmentMiddle,
VerticalAlignmentBottom,
} VerticalAlignment;
@interface CustomeLabel :UILabel
{
@private
VerticalAlignment _verticalAlignment;
}
@property (nonatomic,assign)VerticalAlignment verticalAlignment;
@end
.m文件
#import "CustomeLabel.h"
@implementation CustomeLabel
- (id)initWithFrame:(CGRect)frame
{
self = [superinitWithFrame:frame];
if (self) {
self.verticalAlignment =VerticalAlignmentMiddle;
}
return self;
}
- (void)setVerticalAlignment:(VerticalAlignment)verticalAlignment
{
_verticalAlignment = verticalAlignment;
[selfsetNeedsDisplay];
}
- (CGRect)textRectForBounds:(CGRect)bounds limitedToNumberOfLines:(NSInteger)numberOfLines
{
CGRect textRect = [supertextRectForBounds:bounds limitedToNumberOfLines:numberOfLines];
switch (self.verticalAlignment) {
caseVerticalAlignmentTop:
textRect.origin.y = bounds.origin.y;
break;
caseVerticalAlignmentBottom:
textRect.origin.y = bounds.origin.y + bounds.size.height - textRect.size.height;
break;
caseVerticalAlignmentMiddle:
// Fall through.
default:
textRect.origin.y = bounds.origin.y + (bounds.size.height - textRect.size.height) /2.0;
}
return textRect;
}
- (void)drawRect:(CGRect)rect
{
CGRect actualRect = [selftextRectForBounds:rect limitedToNumberOfLines:self.numberOfLines];
[superdrawTextInRect:actualRect];
}
- UILabel的一些自定义用法的总结
- UILabel的一些用法
- ios UILabel 用法的总结
- UILabel的一些常用用法汇总
- 自定义字体的UILabel
- IOS NSTimer的使用 UILabel的一些用法
- UILabel的用法
- UILabel的各种用法
- UILabel的有关用法
- UILabel的基本用法
- iphone开发:UILabel的一些属性和常见用法
- UILabel的属性总结
- 关于 UILabel 的总结
- UILabel的一些基本使用
- 自定义控件的一些总结
- UiLabel的属性和用法
- iOS UILabel的基本用法
- Unity3D之UILabel的用法
- 一张图让你看懂各开源License
- Quartz实例及IIS闲置超时解决方案
- Activity四种加载模式
- Java多线程基础篇二------常用方法
- Android NDK 学习
- UILabel的一些自定义用法的总结
- 开始我的技术学习之旅
- ZipBeginFileEvent.class
- C++中构造函数和析构函数避免调用虚函数的问题
- Oracle Fusion Overview
- C++内存池的实现实例
- iOS 应用程序目录结构
- android视图截屏功能
- struts2国际化--更改浏览器默认语言环境