У меня есть файлы DiscoverViewController.h и .m, которые имеют функцию, которая перемещает виды мест для обнаружения. Я хочу повторно использовать это представление в контроллерах вывода. Код для DicoverViewController.m с uiview ниже:Создание подкласса для UIView для повторного использования
for (PFObject *views in objects)
{
// Get the discoverr view setup
CGRect frame = CGRectMake(5.0, _viewStart, 310.0, viewHeight);
DiscoverView *parent = [[DiscoverView alloc] init];
[parent buildDiscoverViewWithFrame:frame andObjects:replies];
// UIView *parent = [[UIView alloc] initWithFrame:CGRectMake(5.0, _viewStart, 310.0, viewHeight)];
parent.backgroundColor = [UIColor whiteColor];
// parent.layer.cornerRadius = 2.0;
parent.layer.borderColor = [UIColor regularColor].CGColor;
parent.layer.borderWidth = 1.0f;
parent.tag = 1000 + _step;
// Add the label counter
// Add discover id for testing (is unique id)
UILabel *placeholder = [[UILabel alloc] initWithFrame:CGRectMake(0.0, 10.0, 310.0, 12.0)];
placeholder.backgroundColor = [UIColor clearColor];
placeholder.textAlignment = NSTextAlignmentCenter;
placeholder.textColor = [UIColor bestTextColor];
placeholder.font = [UIFont fontWithName:@"HelveticaNeue-Light" size:(12.0)];
placeholder.Text = [NSString stringWithFormat:@"%@", views.objectId];
[parent addSubview:placeholder];
// Increase size of content view
CGRect newContentView = _contentView.frame;
newContentView.size.width = _contentView.frame.size.width;
newContentView.size.height = _contentView.frame.size.height + bestHeight;
[_contentView setFrame:newContentView];
[_contentView addSubview:parent];
scrollView.contentSize = _contentView.frame.size;
// Adjust the postions
_viewStart = _viewStart + viewHeight - 1.0;
_step = _step + 1;
}
uiview класс называется DiscoverView.h
#import <UIKit/UIKit.h>
#import <Parse/Parse.h>
@interface DiscoverView : UIView
- (UIView *) buildDiscoverViewWithFrame:(CGRect) frame andObjects:(PFObject *) objects;
@end
Файл реализации DiscoverView.m:
- (UIView *) buildDiscoverViewWithFrame:(CGRect) frame andObjects:(PFObject *) objects
{
UIView *discover = [[UIView alloc] initWithFrame:frame];
_photoObject = objects.objectId;
//Add a gesture to dismiss keyboard on tap
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(discoverTapPressed)];
[discover addGestureRecognizer:tap];
return discover;
}
- (void) discoverTapPressed
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"The id is:"
message:_photoObject
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
}
Как-то это работает неправильно. Рамка не будет отображаться в правом пространстве, а крана не работает вообще. Мне нужно изменить его как ссылку на класс или экземпляр? Как повторно использовать этот класс (DiscoverView) и заставить его работать правильно?
Спасибо.
Почему вы не используете UITableView или UICollectionView? любая конкретная причина создания ручного бесконечного прокрутки? – abhishekkharwar
Посмотрите мой комментарий ниже об этом (в значительной степени в представлении таблицы было 90 процентов работы, но последние 10 процентов пользовательского интерфейса, который я хотел для моего приложения, были жесткими). Но я использую представления таблиц и коллекции в другом месте, где вся страница сама представляет собой представление коллекции или таблицы. – cdub
вы можете опубликовать снимок экрана UI? – abhishekkharwar