I am creating tableview with row height 100, between each row i want a 5 pixels gap. For that for each row i am adding uiview(width:320px, hight:1px) at row's 95th 'y' position . Now everything is going fine. But when i select the cell the rows selectedbackgroundview covering entire row i. But i want to set rows selectedbackgroundview height as 95.
i tried following way in cellForRowAtIndexPath
but no use, please help me out.
cell.selectedBackgroundView.frame = CGRectMake (0, 0, 320, 95);
Thanks for your answer, Finally got the solution.
We can adjust the selectedBackgroundView frame by creating the custom cell. Steps to solve the problem.
Inside that under layoutSubviews
method we can change the tableviewcell related view frames those are selectedBackgroundView
, defalut imageView
, textLabel
, detailTextLabel
frames
To change the selecteddBackgroundView frame
- (void )layoutSubviews { // always try to set frame in layoutSubviews [super layoutSubviews]; self.selectedBackgroundView.frame = CGRectMake(10, 0, self.frame.size.width - 20, 88); }
To change the textLabel, detailTextLabel Frames
- (void)layoutSubviews {// always try to set frame in layoutSubviews [super layoutSubviews]; self.textLabel.frame = CGRectMake(0, 0, 50, 20); self.detailTextLabel.frame = CGRectMake(55, 0, 225, self.frame.size.height); }
Swift:
override func layoutSubviews() {
super.layoutSubviews()
// containerView -> Is a view with constraints in the storyboard where I whish to see the selection
selectedBackgroundView?.frame = containerView.frame
}
Just a thought
You can use multiple sections tableview pass array.Count in numberOfSectionsInTableView
numberOfRowsInSection
in each section will be 1
Pass 5px in heightForHeaderInSection
so that there will be 5px gap between each of the rows
Pass 95 px to heightForRowAtIndexPath
as you want height of cell to be 95 ,
In cellForRowAtIndexPath
instead of indexPath.row
you will have to deal with indexPath.section
Let me know if i am missing something. I think it will do what you want to achieve. Hope it helps
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.