- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试将多个按钮添加到 UIView
子类。在 UIView
子类(称为 leftPanel
)的 init()
方法中,我添加了对不同函数的多次调用以添加每个按钮。这是我的 init()
的样子:
override init(frame: CGRect){
super.init(frame: frame)
components = self.setupView()
print("Checkpoint: [leftPanel] init() call finished") // basic debug checkpoint
}
init()
调用名为 setupView()
的函数,该函数包含对创建按钮的每个函数的调用。这是我的 setupView()
代码:
func setupView() -> [UIView] {
let addButton = self.setupAddButton()
let infoButton = self.setupInfoButton()
let orderPromoteButton = self.setupOrderPromoteButton()
let orderDemoteButton = self.setupOrderDemoteButton()
let refreshItemsButton = self.setupRefreshItemsButton()
let components = [lessonActionsLabel, addButton, infoButton, orderPromoteButton, orderDemoteButton, refreshItemsButton]
return components
}
setupView
函数中的每个调用都是针对一个较小的函数,该函数包含将每个按钮添加到 leftPanel
子类的代码。我已经这样做了,所以我可以根据需要删除每个成员,并且可以使用每个单独的设置函数根据需要将每个单独的项目重新添加到我的 View 中。大多数功能几乎相同,并使用此代码:
func setupRefreshItemsButton() -> UIButton {
let refreshItemsButton = UIButton(type: UIButtonType.infoLight)
refreshItemsButton.frame = CGRect(x:0, y:screenHeight*55/100, width: screenWidth*30/100, height: screenHeight*5/100)
refreshItemsButton.setTitle(" Refresh lesson items", for: UIControlState.normal)
refreshItemsButton.setImage(UIImage(contentsOfFile: "up.png"), for: UIControlState.normal)
self.addSubview(refreshItemsButton)
return refreshItemsButton
}
设置每个按钮。但是,当我在 iOS 模拟器上运行它时,应该为每个按钮设置图像的行似乎不起作用。当我初始化每个按钮时,我用 UIButtonType.infoLight
类型初始化它们,因为我想使用与普通 infoLight
按钮相同的样式(例如文本颜色) .我想更改的 infoLight
类型的唯一属性是它旁边的图像(默认情况下是 (i))。我想把图标做成UIImage(contentsOfFile: "up.png")
,但是好像不行。 任何人都可以建议我可以做些什么来实现这个目标吗?
我目前尝试对现有的进行一些更改,例如将类型更改为 .custom
,看看这是否会更改图像,但这也不起作用。它只会重置我想使用的 .infoLight
的格式,所以我已将其切换回来。但是,如果您的解决方案需要我将其改回 .custom
,那么我可以做到。
我也尝试过更改我的代码以仅将 up.png
替换为 up
但它仍然不起作用。
我的代码都没有引发任何警告或错误。
编辑:大多数答案建议我将 UIImage(contentsOfFile: "")
更改为 UIImage(named: "")
,我已经完成了,但它占据了 UIButton 的整个框架,我想更改它,并通过保持一个 .infoLight
来保持相同右侧带有标签的小图像。任何人都可以为此提出解决方法吗?
这个问题有什么独特的?:虽然 .setImage() 已经通过使用 UIImage(named:)
解决了UIImage(contentsOfFile:)
,我还想在按钮对象中保留 .setTitle()
标签。 UIImage(named:)
调用使图像填充按钮的整个 框架,但我想保持它与 .infoLight< 相同
,右边是带标题的小图。
最佳答案
使用背景图片,像这样:
refreshItemsButton.setBackgroundImage(
UIImage(named:"up.png"),
for:UIControlState.normal)
关于ios - UIButton .setImage() 在 Swift 3 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45518982/
我在设置图像时遇到问题。当从 imagePickerController 中获取图像时,我有一个代表告诉我。它将它发送到所有者 Controller ,然后我尝试在另一个 Controller 上设置
我需要使用线程来从网络检索图像并将其分配到 ImageView 中。 我对 NSOperation 进行了子类化,并从我的 View Controller 中调用它,如下所示: NSOperation
我有以下代码,当我调用此方法时,尽管资源中有图像,但它不会更改按钮的图像。 -(void)changeButton:(NSString*)button withURL:(NSString*)url {
我对这门语言完全陌生,我正在尝试了解 ImageIcon 的工作原理。我在子类中有一个方法,我想根据 switch 语句返回一个 ImageIcon。我遇到的唯一问题是我似乎无法让 .setImage
我有一个以编程方式创建的 UIImageView ([[UIImageView alloc] init])。应用程序的内存一直受到检查,直到 setImage:方法被调用。有什么想法吗? 最佳答案 我
我在代码中创建了两个UIImageView: UIImageView *background = [[UIImageView alloc]initWithFrame:CGRectMake(150, 6
我通过一个非常简单的函数遇到了内存泄漏问题。这是我的代码: -(void) drawPuzzle { gameView.image=nil; UIGraphics
我正在使用 setImage() 在 UIButton 上设置图像,但它不会立即更改图像。要显示图像,我需要再次单击该按钮或其他按钮。如何解决这个问题? block.setImage(UIImage(
我已经使用 setImage 来描述当前图像的状态,但我想在 setImage() 中同时使用两个状态。所以我想合并两个状态 .Highlighted & .Selected button.setIm
我正在编写一个音调生成器 UI,每次生成器开始生成和完成生成时,我都需要更改 UIImageView 图像。为此,我有 @property (weak, nonatomic) IBOutlet UII
我有一个类,其中有两个 UIImageView。在 if control 之后我正在设置这些 ImageView 的图像,但它没有设置。 我正在调用另一个类的方法。 我的代码如下, @synthesi
使用此代码设置按钮图像时出现问题: button.setImage(#imageLiteral(resourceName: "flight_deselect")**.changeToLightGray
我正在尝试制作自己的自定义 Facebook 登录按钮。我很接近,但出于某种原因,当我在 UIButton 上设置图像时,它仍然有一个非常大的框架,将文本推到右边,图标也推到右边。 我错过了什么?我尝
我正在尝试让 tesseract 在 python 中运行: ...image is a numpy array (uint8)... tessApi = tesseract.TessBaseAPI(
我正在使用 andEngine 为 Android 开发游戏。我必须动态更改 Sprite 图像。在 J2ME 中,我使用了 sprite.setImage("img.png"); 但是在andeng
我正在尝试使用 CMFCButton 中的函数 SetImage 为我的按钮加载位图。我没有得到任何错误或其他东西,只是一个普通的按钮。我正在对 icons 做同样的事情并且它有效,但我也需要它来加载
我用 ffmpeg 实现了一个视频播放器。每一帧都解码成功,可以保存为有效的jpg文件,在模拟器中运行时可以显示在UIImageView中。但是,当我在模拟器中运行我的应用程序时,内存会无限增长。此外
这个问题完全难住了我。这是适用于带有 Xcode 4.2 的 iOS 5.0 发生的事情是,在我的应用程序中,我让用户从他们的相册中选择图像,并将这些图像保存到应用程序文档目录中。非常简单。 然后我所
我正在尝试使用以下方法从本地 URL 加载图像: UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:fileU
一直在寻找这个问题的解决方案已经无数个小时了。问题其实很简单。我在 nib 中有一个 UIImageView,我正在从互联网加载图像并使用该图像设置 UIIImageView。我正在释放 viewCo
我是一名优秀的程序员,十分优秀!