آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

مشکل عرض کامل و ارتفاع داینامیک در UICollectionView و چند خط نشدن لیبل متن

شهریار توکلی  10 سال پیش  10 سال پیش
0 0

درود خدمت شما . به تصویر زیر نگاه کنید

در تصویر بالا همانطور که می بینید من چند مشکل دارم که یکیش حل می شه یکی دیگه حل نمی شه و برعکسشون 

 

۱. من نیاز ب عرض ۹۸ درصدی یا ۱۰۰ درصدی  دارم که هم زیبا بشه و هم کل صفحه رو بگیره 

برای این کار من یک سرچ زدم به کد زیر رسیدم  :

 
//     fill the width
 func collectionView(collectionView: UICollectionView,
                        layout collectionViewLayout: UICollectionViewLayout,
                               sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
        let sizeWidthFullPage = 98
        return CGSizeMake(collectionView.bounds.size.width, CGFloat(sizeWidthFullPage))
    }

 

   

حالا مشکلات رو ببنید .

خوب 

  1. نیاز به hight داینامیک دارم که این اتفاق پیش نیاد که سرچ زدم چیزی پیدا نکردم 
  2. نیاز به این دارم که تیترم که بالا عکس هست hight اون و لاین اون هم داینامیک باشه با اینکه من بهش در اینترفیس بیلدر دو لاین دادم ولی بازم داره یک خط کامل رو می گیره دو لاین نمی شه  و کمی هم  داره به هم می زنه اندازه هامو


این مشکلات من بود که برخورد کردم نتونستم حل کنم یکی hight داینامیک هست و همینطور بهم نخوردن چهره اپ 

نکته : من به صورت گرافیکی ارتفاع یک سلول زیاد می کنم هیچ تغییری تو اپ نداره

تشکر

0 0
به جای استفاده از CollectionView از TableView استفاده کنید ، این 2 لینک را هم مطالعه کنید : لینک و لینک (10 سال پیش)
0 0
درود آقای کاشی زاده . تیبل ویو نمی دونم می شه برای گالری تصاویر درست کرد یا خیر؟ چون کالکشن خیلی راحت مربع مربع می شه و ... به همین منظور پرسیدم . (10 سال پیش)
0 0
اگذ که چندین آیتم کنار هم قرار هست بشینه پس همان CollectionView را استفاده کنید اما اگر قرار هست تک ستونه باشه از TableView استفاده کنید . لینک , لینک (10 سال پیش)
 برای این سوال 9 پاسخ وجود دارد.
پاسخ به سوال 
شهریار توکلی  10 سال پیش
0 0

درود آقای  کاشی زاده تشکر بخاطر پاسختون . هنوز دارم باهاشون کمی ور می رم بلخره درست بشند کمی بهتر شدند .

یک سوال داشتم برای فاصله دادن بین دو سلول در tableview تو اینترنت راه حل های زیادی هست مثلا یکی اومده بود زوجشو پیدا کرده بود بیسش یک بلاک دیگه درست کرد یا یکی عکس اومد قرار داد. شما برای فاصله دادن چیکار می کنید . چون موارد مذکور کمی کثیف کاری دارند یا چیزی بینشون باقی می مونه.

خود اینترفیس بیلدر فاصله بین دو سلول نداره فکر کنم فقط به صورت برنامه نویسی این امکان وجود داره

توی ویو کالکشن خیلی ساده بود فقط کافی بود کد زیر زده بشه و فصاله دلخواه داده بشه ولی تو تیبل ویو خیر

 

    
func collectionView(collectionView: UICollectionView,
                                   layout collectionViewLayout: UICollectionViewLayout,
                                          minimumLineSpacingForSectionAtIndex section: Int) -> CGFloat {
//       section
        return 8.0
    }
پاسخ به سوال 
کاشی زاده  10 سال پیش
0 0

برای TableView هم اگر اشتباه نکنم این متد کاربرد داره :

 func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 10
}
پاسخ به سوال 
شهریار توکلی  10 سال پیش
0 0

درود قبلا همین تست کرده بودم متاسفانه جواب نداد اگر توجه بکنید به عکس فقط به اولین سلول کمی بالاش اضافه کرد

 

 

پاسخ به سوال 
کاشی زاده  10 سال پیش
0 0

بررسی کردم مشکلی نداره ، احتمالا اشتباهی در قسمتی از کد دارید .

پاسخ به سوال 
شهریار توکلی  10 سال پیش
0 0

درود خدمت شما 

 

آقای کاشی زاده این کل کد من هست مقایسه کردم با شما مشکلی نبود 

 

 
    func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        return 1
    }
    
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return number.count
    }
    
    func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
        return 10
    }
    
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        
        
        let cells = tableView.dequeueReusableCellWithIdentifier("TableViewVCWEbBlogs", forIndexPath: indexPath) as! TableViewCellWebBlogs
        
        
        
        cells.labelWebTitle.text = String(number[indexPath.row])
        cells.lableWebDesc.text = String(number2[indexPath.row])
        cells.uiimageWebImage.image = UIImage(named: "test")
        
        // ui tableView
        cells.labelWebTitle.font = UIFont(name: "IRANSansWeb", size: 11)
        cells.lableWebDesc.font = UIFont(name: "IRANSansWeb", size: 11)
        
        cells.layer.borderColor = UIColor.grayColor().CGColor
        cells.layer.borderWidth = 0.5
        cells.layer.cornerRadius = 2
        // end ui tableView
        
        
        
        
        return cells
        
    }
    
    func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath){
        
        let VcContent = storyboard?.instantiateViewControllerWithIdentifier("VcContent") as! ContentViewController
        VcContent.titleContent = String(number2[indexPath.row])


        
        navigationController?.pushViewController(VcContent, animated: true)
    }

    

شما اشتباهی در اون می بینید ؟

0 0
آقای کاشی زاده من section رو پرینت زدم همه رو زده 0 گفتم بگم شاید کمک بکنه مشکلم حل بشه (10 سال پیش)
0 0
بله مشکل در اونجا هست که مقدار این numberOfSectionsInTableView برابر تعداد خونه های آرایه باید باشه و numberOfRowsInSection باید 1 باشه . (10 سال پیش)
پاسخ به سوال 
شهریار توکلی  10 سال پیش
0 0

واقعا ممنونم آقای  کاشی زاده . چند روزی هست وقت منو همین بی تجربگی گرفته . فقط یک مشکل هست این وسط که تو تصویر شما هست . بک گراند پشتی برای شما هم رنگ غیر سفید هست. ( برای گرفتن وقتتون هم من واقعا شرمنده ام )
و من حتی برای cell اومد به صورت زیر تعریف کردم

 

cells.backgroundColor = UIColor.blackColor()

و همینطور برای خود تیبل ویو هم اومدم رنگ تعریف کردم از اینترفیس بیلدر متاسفانه همون رنگ گریی سفید کدر تو تصویر شما هست واسه منم هست

 

tableView.backgroundColor = UIColor.clearColor()

تشکر

+1 0
رنگ هدر هم داخل متد مخصوص قابل کنترل هست که باید clear بزنید با یه سرچ تو گوگل به نتیجه میرسید . (10 سال پیش)
پاسخ به سوال 
شهریار توکلی  10 سال پیش
0 0

بلخره پیداش کردم می زارم دوستان هم اگر نیاز داشتن ازش استفاده کننده 

 

func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?
    {
        let headerView = UIView(frame: CGRectMake(0, 0, tableView.bounds.size.width, 30))

            headerView.backgroundColor = UIColor.whiteColor()

        return headerView
    }

 

پاسخ به سوال 
شهریار توکلی  10 سال پیش
0 0

درود آقای کاشی زاده این مشکل فاصله مثل اینکه بیشتر از این حرفا کار داره طبق گفته شما که من قرار دادم مشکل فاصله حل شد ولی مشکل دیگه ای رو ایجاد کرد اونم در ادامه می گم ( من طبق آموزش قبلا برعکس بود این جاهاش )

بله مشکل در اونجا هست که مقدار این numberOfSectionsInTableView برابر تعداد خونه های آرایه باید باشه و numberOfRowsInSection باید 1 باشه . ( در 1 روز پیش )

باید تغییر می کرد که همین موضوع باعث این شد که کد فاصله درست بشه ولی طبق گفته شما اگر این کارو بکنم 

let note  = notes[indexPath.row]
        print(note.task_title)

فقط یک داده در کل سلول های چاپ می شه

ولی اگر من جای دوتا فانکشن رو تغییر بدم فاصله خراب  می شه ولی داده ها درست می شه

تغییر کد به این صورت باشه اگر  :

تشکر

پاسخ به سوال 
شهریار توکلی  10 سال پیش
0 0

درود مشکلشو فهمیدم باید بجای  row سکشن قرار بدیم درست می شه

 

let note  = notes[indexPath.section]
+1 0
بله ، زمانی که خالت نمایش میخواید عوض کنید و جدا نمایش بده تعداد سکشن رو به تعداد آیتم میرسونید و تو هر سکشن 1 خونه قرار میدید ، در کدی که بالا تر عکس گرفتم این موضوع رعایت شده . (10 سال پیش)
0 0
بله درست می فرمایید . توجه نداشتم ولی خوب با سرچ پیدا کردم فکر نکنم دیگه یادم بره . برای دوستان این لینک خیلی خوبه لینک (10 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .