关于UIEdgeInsets以及uiedgeinsetsmake参数的请教,不懂是什么意思

49939人阅读
转载分享(33)
记录(42)
UIEdgeInsets
typedef struct UIEdgeInsets { &
& & CGFloat top, left, bottom, &// specify amount to inset (positive) for each of the edges. values can be negative to 'outset' &
} UIEdgeI &
在UIButton中有三个对EdgeInsets的设置:ContentEdgeInsets、titleEdgeInsets、imageEdgeInsets
@property(nonatomic) & & & & &UIEdgeInsets contentEdgeInsets UI_APPEARANCE_SELECTOR; // default is UIEdgeInsetsZero &
@property(nonatomic) & & & & &UIEdgeInsets titleEdgeI & & & & & & & &// default is UIEdgeInsetsZero &
@property(nonatomic) & & & & &BOOL & & & & reversesTitleShadowWhenH // default is NO. if YES, shadow reverses to shift between engrave and emboss appearance &
@property(nonatomic) & & & & &UIEdgeInsets imageEdgeI & & & & & & & &// default is UIEdgeInsetsZero &
UIEdgeInsetsMake
里面的四个参数表示距离上边界、左边界、下边界、右边界的距离,默认都为零,title/image在button的正中央
UIKIT_STATIC_INLINE UIEdgeInsets UIEdgeInsetsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat right) { &
& & UIEdgeInsets insets = {top, left, bottom, right}; &
&self.view.backgroundColor = [UIColor blackColor]; &
& & UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];//button的类型 &
& & button.frame = CGRectMake(100, 100,90, 90);//button的frame &
& &button.backgroundColor = [UIColor cyanColor];//button的背景颜色 &
// & &[button setBackgroundImage:[UIImage imageNamed:@&man_64.png&] forState:UIControlStateNormal]; &
// & &在UIButton中有三个对EdgeInsets的设置:ContentEdgeInsets、titleEdgeInsets、imageEdgeInsets &
& & [button setImage:[UIImage imageNamed:@&IconHome@2x.png&] forState:UIControlStateNormal];//给button添加image &
& & button.imageEdgeInsets = UIEdgeInsetsMake(5,13,21,button.titleLabel.bounds.size.width);//设置image在button上的位置(上top,左left,下bottom,右right)这里可以写负值,对上写-5,那么image就象上移动5个像素 &
& & [button setTitle:@&首页& forState:UIControlStateNormal];//设置button的title &
& & button.titleLabel.font = [UIFont systemFontOfSize:16];//title字体大小 &
& & button.titleLabel.textAlignment = NSTextAlignmentC//设置title的字体居中 &
& & [button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];//设置title在一般情况下为白色字体 &
& & [button setTitleColor:[UIColor grayColor] forState:UIControlStateHighlighted];//设置title在button被选中情况下为灰色字体 &
& & &button.titleEdgeInsets = UIEdgeInsetsMake(71, -button.titleLabel.bounds.size.width-50, 0, 0);//设置title在button上的位置(上top,左left,下bottom,右right) &
// & &[button setContentEdgeInsets:UIEdgeInsetsMake(70, 0, 0, 0)];// &
// & button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentC//设置button的内容横向居中。。设置content是title和image一起变化 &
& & [button addTarget:self action:@selector(tap) forControlEvents:UIControlEventTouchUpInside]; &
& & [self.view addSubview:button]; &
//button相应的事件 &
-(void)tap { &
& & NSLog(@&tap a button&); &
& & UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@&hello& message:@&willingseal& delegate:self cancelButtonTitle:@&ok& otherButtonTitles: nil nil]; &
& & [alertView show]; &
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:177470次
积分:1740
积分:1740
排名:第14945名
原创:31篇
转载:35篇
评论:19条
(1)(1)(1)(2)(4)(1)(4)(4)(4)(8)(2)(6)(9)(6)(6)(8)<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&下次自动登录
现在的位置:
& 综合 & 正文
UIEdgeInsetsMake的作用
UIEdgeInsets UIEdgeInsetsMake (
CGFloat top,
CGFloat left,
CGFloat bottom,
CGFloat right);他的作用就是定义一个在scrollview被拽出一个contentOffset 的时候的一个空间配合blocks可以实现下拉刷新中footer部分的停留
self.tableView.contentInset = UIEdgeInsetsMake([self headerRefreshHeight], 0, 0, 0);
实现了一个下拉刷新的时候顶部footer的停留。
&&&&推荐文章:
【上篇】【下篇】ios7关于自定义导航条UIBarButtonItem偏移的问题_百度知道
ios7关于自定义导航条UIBarButtonItem偏移的问题
)) { if (self, 0,0), 0, 0, 5.0f), 0, 0; IF_ITS_A_RIGHT_BUTTON insets = UIEdgeInsetsMake(0, 0, 0ios7里导航条按钮会往左或右偏移几个像素, 0, 0); if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@&&#47; } } return insets,0); IF_ITS_A_RIGHT_BUTTON insets = UIEdgeInsetsMake(0;}- (UIEdgeInsets)alignmentRectInsets { UIEdgeInsets insets = UIEdgeInsetsMake(0;7& } } return insets,但是切换页面的时候没办法直接切换;}可以调整到正确的位置, 0,会有先显示旧的位置然后才会显示调整后的位置的动作;)) { if (&#47.0f,参考这篇文章 使用该方法- (UIEdgeInsets)alignmentRectInsets { UIEdgeInsets insets = UIEdgeInsetsMake(0, 5; } else { &#47; if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@&quot, 5, 0).isLeft) { insets = UIEdgeInsetsMake(0; } else{ &#47, 5.isLeft) { insets = UIEdgeInsetsMake(0.0f).0f;7&quot,各位有何办法解决吗, 0
提问者采纳
@selector(handleBack, -13; self.navigationItem你应该设置imageEdgeInsets self, 40):btn]; btn:[UIImage imageNamed,而alignmentRectInsets也会有动画效果
查看原帖&gt,但是问题在于你pushViewController时候启动了动画:@& btn:UIControlEventTouchUpInside]:UIControlStateNormal];come_back, 0;] forState:) forControlEvents.view, 0.imageEdgeInsets = UIEdgeInsetsMake(0.frame = CGRectMake(0;&gt:self action, 45;如果你实现了alignmentRectInsets也不是不行.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView.backgroundColor = [UIColor blueColor]:UIButtonTypeCustom]; [btn addT [btn setImage.png&quot, 0); UIButton* btn = [BarItemButton buttonWithType
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
btn.frame = CGRectMake(100, 100, &span style=&color:#FF0000;&&71&/span&, 28);
btn.backgroundColor = [UIColor blackColor];
[btn setTitle:@&更多& forState:UIControlStateNormal];
btn.layer.cornerRadius = 5;
btn.layer.masksToBounds = YES;
btn.titleLabel.font = [UIFont systemFontOfSize:14.0f];
//14*14&span id=&transmark&&&/span& 这个是图片大小
[btn setImage:[UIImage imageNamed:@&white_thum&span id=&transmark&&&/span&b.png&] forState:UIControlStateNormal];
btn.imageView.backgroundColor = [UIColor yellowColor];
btn.titleLabel.backgroundColor = [UIColor blueColor];
[self.view addSubview:btn];
CGSize imageSize = btn.imageView.frame.
//titleSize 有一个神奇的事情 那就是 如果 btn.titleLabel.backgroundColor 有赋颜色值 那么titleSize 才会有值,否则是{0,0}
//所以下面 我注释了,计算的时候 就用到了 btn.titleLabel.frame.size.width, 而不是titleSize.width&/span&
CGSize titileSize = btn.titleLabel.frame.
//先算出两边的间距
CGFloat abc = (btn.frame.size.width - btn.titleLabel.frame.size.width - imageSize.width ) / 2;
[btn setTitleEdgeInsets:UIEdgeInsetsMake(0, 0, 0, imageSize.width + abc)];
[btn setImageEdgeInsets:UIEdgeInsetsMake(0, abc + btn.titleLabel.frame.size.width, 0, 0)];
下面是 前后对比
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:36345次
排名:千里之外
原创:38篇
(4)(1)(2)(2)(2)(2)(3)(4)(5)(1)(1)(2)(5)(7)(5)

我要回帖

更多关于 uiedgeinsets详解 的文章

 

随机推荐