【问题标题】:Showing images in a UITableView with prototype cell在带有原型单元格的 UITableView 中显示图像
【发布时间】:2016-01-01 23:24:59
【问题描述】:

我想与我的公会的所有成员创建一个UITableView。我将其配置为显示姓名、地址、电话等信息。但我还想显示每个人的两张照片:1)一张带有他们的肖像,2)另一张带有他们的徽章。我不知道我必须给 UIImageViews 什么样的类型才能让它工作。

这段代码显示一个错误,UIImageView 是一个未声明的类型。

import Foundation

struct Person {
    var name: String?
    var profession: String?
    var addressBlockOne: String?
    var addressBlockTwo: String?
    var phoneNumberPrivate: String?
    var phoneNumberMobile: String?
    var phoneNumberWork: String?
    var mail: String?
    var birthday: String?
    var admission: String?
    var portraitView: UIImageView?
    var emblemView: UIImageView?
}

编辑: 我现在已经导入了 UIKit 并将 UIImageView 更改为 UIImage。一切正常,没有错误。但是当我想在 UIImageView 中放置一个图像时,它不会在模拟器中显示它。这是 TableCell 的测试:

import Foundation
import UIKit

class PersonService {

private let persons: [Person] = [
    Person( name: "xy",
            profession: "yx",
            addressBlockOne: "street xy",
            addressBlockTwo: "yx",
            phoneNumberPrivate: "xxxx",
            phoneNumberMobile: "yyyy",
            phoneNumberWork: "-",
            mail: "zz@gmail.com",
            birthday: "xy",
            admission: "yx",
            portraitView: UIImage(named: "xy"),
            emblemView: UIImage(named: "yx")
    )

编辑 2: 这不是约束的问题。问题是,当我将一张图片放在故事板上的 UIImageView 中时,它现在只显示一张图片,并且它为所有成员显示同一张图片。

【问题讨论】:

  • UIImageView 只是放置图像的地方。您仍然需要告诉 imageView 您将在其中使用什么图像。
  • 对不起,我只是一个初学者。我没有太多经验。对于文本字段中的内容,我制作了另一个文件,我在其中向所有成员提供了信息。所以首先我必须给 UIImageViews 一个 Type 以便程序知道我可以在里面放什么。还是我错了?当我给它们一个类型字符串时,其他变量工作得很好,但是我需要什么类型的图像?

标签: ios swift uitableview uiimageview


【解决方案1】:

您是否将 import UIKit 添加到您的文件中?

要使用任何应用程序 UI(用户界面)元素,您需要在控制器中导入 UIKit。

参考:https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIKit_Framework/

【讨论】:

  • 非常感谢。这有帮助
  • @Thobbit 我没有得到你的问题?你能简要解释一下吗?
  • 这就像它没有加载图像一样。它们保存在项目中,但当我将它们放在这样的代码中时,它们不会显示在 UIImageView 中
【解决方案2】:

您需要将图像作为 UIImage 存储在 Person 结构中 - 与将名称存储在字符串中的方式完全相同,而不是在 UITextView 或 UILabel 中

【讨论】:

  • 我明白了,谢谢。我的下一个问题是编辑问题。
  • 好的 - 哪个位失败了?可能是您最初没有加载数据,或者您没有显示它,您是否确认首先正确填充了 Person 结构?您是否确认图像视图显示正确 - 有时约束不正确,图像视图最终会在 (0,0) 大小 (0,0) 处结束,这不好。您始终可以通过在设计时设置默认图像来检查您的图像视图
  • 必须加载数据,因为它完美地显示了姓名、职业等所有信息。约束也应该很好,当我在情节提要上放一张图片时看起来不错,但如果我以编程方式放入它并没有显示
  • 很好,字符串都加载好了,但是你需要专门检查图像变量 - 你将无法看到图像本身(我希望你能看到!)但你应该能够看到是东西已经加载。请记住 - 您在加载图像时所做的不仅仅是设置字符串。您必须确保图像已正确加载到资源包中,并且您在运行时使用正确的名称加载它
  • 在分配数据之前在代码中设置断点 - 查看 UIImage 变量和数据加载的步骤。如果你没有看到你的变量的描述发生变化,那么你就知道你没有正确加载它。
猜你喜欢
  • 1970-01-01
  • 2015-05-01
  • 2011-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多