【问题标题】:Customize UIButton Custom TableCell from Controller Class从控制器类自定义 UIButton 自定义 TableCell
【发布时间】:2013-10-25 01:06:15
【问题描述】:

我有一个自定义的 UI 表格单元格代码,它被导入到控制器中。在控制器中,我希望进行一些更改(更改边框、颜色等)。我在 XIB 中连接了 ref 插座,但是当我尝试在 Controller 中进行更改时,没有任何反应。这是我的 Controller.m:

 @synthesize btnExpDate;

 - (void)viewDidLoad
 {
[super viewDidLoad];

//detect iOS 7
NSString *ver = [[UIDevice currentDevice] systemVersion];
float ver_float = [ver floatValue];

if (ver_float >= 7.0) {

    // adds border to borderless button for iOS 7
    btnExpDate.layer.BorderWidth = 1;
    btnExpDate.layer.CornerRadius = 4;
    btnExpDate.layer.borderColor = [UIColor colorWithRed:230.0/255.0 green:230.0/255.0 blue:230.0/255.0 alpha:1.0].CGColor;

}

控制器.h

 #import <UIKit/UIKit.h>
 @class PullInventoryAddLotsTableCell;

 @interface PullInventoryAddLotController : JCBaseController {
 NSMutableArray* _newlyAddedLots;
 }

 @property (nonatomic, retain)  IBOutlet UIButton* btnExpDate;

 @end

【问题讨论】:

  • 输入 NSLog(@"%@", self.btnExpDate);在 viewDidLoad() 中?

标签: ios objective-c uibutton xib


【解决方案1】:

嗯,我相信这与您查找是否是 iOS 7 的部分有关......

 //detect iOS 7
 NSString *ver = [[UIDevice currentDevice] systemVersion];
 float ver_float = [ver floatValue];

 if (ver_float >= 7.0) {

这不是您确定是否是 iOS 的方式。要弄清楚,您应该使用:

这是 Apple 使用的,可在 iOS 7 UI 转换指南中找到

if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) {
    // Load resources for iOS 6.1 or earlier
} else {
    // Load resources for iOS 7 or later
}

还有,在处理这些时

 // adds border to borderless button for iOS 7
btnExpDate.layer.BorderWidth = 1;
btnExpDate.layer.CornerRadius = 4;
btnExpDate.layer.borderColor = [UIColor colorWithRed:230.0/255.0 green:230.0/255.0 blue:230.0/255.0 alpha:1.0].CGColor;

你应该有一个自我。或 _ 在您的变量前面考虑到它们是自动合成的属性.. 此外,您的 BorderWidth 和 CornerRadius 不应以大写开头,它们是borderWidth 和cornerRadius。一个简单的错字:)

 // adds border to borderless button for iOS 7
self.btnExpDate.layer.borderWidth = 1;  // OR _btnExpDate.layer.borderWidth = 1;
self.btnExpDate.layer.cornerRadius = 4; // OR _btnExpDate.layer.cornerRadius = 4;
self.btnExpDate.layer.borderColor = [UIColor colorWithRed:230.0/255.0 green:230.0/255.0 blue:230.0/255.0 alpha:1.0].CGColor; // OR _btnExpDate.layer.borderColor = ...

【讨论】:

  • 我最终只是创建了一个自定义按钮。
  • 没关系 :) 有时自定义按钮会更好。
猜你喜欢
  • 1970-01-01
  • 2016-09-27
  • 2019-03-17
  • 1970-01-01
  • 1970-01-01
  • 2011-08-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多