Swift:从选定的UIView获取tableView indextPath / textLabel

时间:2015-10-13 22:10:51

标签: ios swift uitableview

我使用的是tableView,里面有UIImage,UILabel和FloatRatingView。 FloatRatingView是一个UIView,星级评分,你可以评价1-5。 所以tableView有多个单元格,我想在按FloatRatingView时获取电影标题。

FloatRatingView有两个委托方法。

$phpDllToCopy = array (
    'icudt52.dll', //[modif oto] - Ajouts pour éviter unknown error PHP 5.6.a2
    'icuin52.dll',
    'icuio52.dll',
    'icule52.dll',
    'iculx52.dll',
    'icutest52.dll',
    'icutu52.dll',
    'icuuc52.dll',
    'icudt51.dll', //[modif oto] - Ajouts pour éviter unknown error PHP 5.5.6
    'icuin51.dll',
    'icuio51.dll',
    'icule51.dll',
    'iculx51.dll',
    'icutest51.dll',
    'icutu51.dll',
    'icuuc51.dll',
    'icudt50.dll', //[modif oto] - Ajouts pour éviter unknown error PHP 5.5
    'icuin50.dll',
    'icuio50.dll',
    'icule50.dll',
    'iculx50.dll',
    'icutest50.dll',
    'icutu50.dll',
    'icuuc50.dll',
    'icudt49.dll', //[modif oto] - Ajouts pour éviter unknown error PHP 5.3/5.4
    'icuin49.dll',
    'icuio49.dll',
    'icule49.dll',
    'iculx49.dll',
    'icutest49.dll',
    'icutu49.dll',
    'icuuc49.dll',
    'libeay32.dll',
    'libsasl.dll', //[modif oto] - Ajout pour éviter unknown error
    'libintl.dll',
    'php5isapi.dll',
    'php5nsapi.dll',
    'ssleay32.dll',
    'php5ts.dll',
    'fribidi.dll', //[modif oto] - Ci-contre et dessous pour PHP 5.2.x
    'fdftk.dll',   // Peuvent être supprimés pour PHP 5.3.0 ou plus
    'libmcrypt.dll',
    'libmhash.dll',
    'libmysql.dll',
    'libmysqli.dll',
    'msql.dll',
    'ntwdblib.dll',
    'php5activescript.dll',
    );

到目前为止,在我的自定义TableCell中,我有:

    func floatRatingView(ratingView: FloatRatingView, didUpdate rating: Float) {
    }
    func floatRatingView(ratingView: FloatRatingView, isUpdating rating: Float) {

    }

并在TableViewController中:

var delegate: FloatRatingViewDelegate?
 @IBOutlet weak var userRating: FloatRatingView!{
        didSet {
            if userRating.rating>0 {
            self.delegate!.floatRatingView(userRating, didUpdate: userRating.rating)
        }}
    }

class MoviesViewController: PFQueryTableViewController ,FloatRatingViewDelegate {



func floatRatingView(ratingView: FloatRatingView, isUpdating rating: Float) {
        print("is updating")

    }
    func floatRatingView(ratingView: FloatRatingView, didUpdate rating: Float) {
        print("did update")
    }

1 个答案:

答案 0 :(得分:2)

假设FloatRatingView在单元格内部,最简单的方法是:

  • 向您的单元类添加委托协议,在类中实现FloatRatingViewDelegate,并将回调转发给单元委托。在视图控制器中实现单元委托。
  • 公开您的单元格类的FloatRatingView属性,并将其委托直接设置为视图控制器(需要实现FloatRatingViewDelegate)。迭代可见单元格,找到浮动等级视图所在的单元格。

然而,更现代的解决方案是:

  • 将代理协议替换为函数属性(var didUpdate: (Float -> Void)?),在将单元格出列时在视图控制器中设置它们。在那里,您可以直接关闭indexPath参考。

这将导致整体代码减少。