相关疑难解决方法(0)

Objective-C:类别中的属性/实例变量

由于我无法在Objective-C中的类别中创建合成属性,因此我不知道如何优化以下代码:

@interface MyClass (Variant)
@property (nonatomic, strong) NSString *test;
@end

@implementation MyClass (Variant)

@dynamic test;

- (NSString *)test {
    NSString *res;
    //do a lot of stuff
    return res;
}

@end
Run Code Online (Sandbox Code Playgroud)

测试方法被调用运行时多次,我做了很多的东西来计算结果.通常使用合成属性我会在第一次调用方法时将值存储在IVar _test中,并且下次只返回此IVar.我该如何优化上面的代码?

objective-c categories

118
推荐指数
4
解决办法
7万
查看次数

是否有UIView调整大小事件?

我有一个视图,其中包含imagerait的行和列.

如果调整此视图的大小,我需要重新排列imageviews位置.

此视图是另一个调整大小的视图的子视图.

有没有办法检测何时调整此视图的大小?

iphone ipad ios

98
推荐指数
6
解决办法
7万
查看次数

在UITextView中垂直居中文本

我希望将文本垂直放在一个UITextView填满整个屏幕的大的内部- 这样当几乎没有文字时,说几句话,它就是以高度为中心.这不是关于文本居中(可以在IB中找到的属性)的问题,而是关于如果文本很短则将文本垂直放在中间的问题,因此在文本中没有空白区域.可以这样做吗?提前致谢!UITextView UITextView

iphone xcode objective-c uitextview ios

64
推荐指数
12
解决办法
6万
查看次数

如何检测swift ios xcode中何时更改UIView大小?

我正在使用UIScrollView中的CATiledLayer尝试一些东西.

不知何故,UIScrollView中UIView的大小变为大数.我需要找出导致此调整大小的确切原因.

有没有办法检测UIView的大小(帧,边界)或UIScrollView的contentSize何时调整大小?

我试过了

override var frame: CGRect {
    didSet {
        println("frame changed");
    }
}
Run Code Online (Sandbox Code Playgroud)

在UIView子类中,

但它只在应用程序启动时调用一次,但之后会调整UIView的大小.

cocoa-touch uiscrollview uiview ios swift

20
推荐指数
4
解决办法
3万
查看次数

密钥值观察是否适用于UITextView的文本属性?

我正在使用UITextView的text属性获得关键值观察的最糟糕时间.我可以成功添加观察者,我甚至可以删除同一个观察者.我有一个包含几个单元格的tableview - 一些有UITextFields,一些有UISegmentSelectors,另一个有UITextView.对于UITextView,我的核心数据对象(NSMangedObject的子类)EXCEPT成功观察到所有其余字段.我可以根据需要发布代码.

发布代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *UserProfileCellIdentifier = @"UserProfileCellIdentifier";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:
                         UserProfileCellIdentifier];
if (cell == nil) 
{
    [_tableCellsNib instantiateWithOwner:self options:nil];

    switch (indexPath.row)
    {
            // UserName Row
        case UserNameRowIndex:
            _textFieldCell.cellLabel.text = NSLocalizedString(@"UserNameLabel", @"User Profile TableView");
            _textFieldCell.cellType = CellTypeNormal;
            _textFieldCell.boundProperty = @"UserName";
            _textFieldCell.tag = indexPath.row;
            _textFieldCell.errorHandler = self;
            _textFieldCell.boundControl = _textFieldCell.cellTextField;

            [_textFieldCell addObserver:[MBUtilities getAppDelegate].userProfile forKeyPath:@"cellTextField.text" options:NSKeyValueObservingOptionNew context:NULL];

            cell = _textFieldCell;

            self.textFieldCell = nil;
            break;
        case PasswordRowIndex:
            _textFieldCell.cellLabel.text = NSLocalizedString(@"PasswordLabel", @"User Profile TableView"); …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c ios

15
推荐指数
2
解决办法
1万
查看次数

是否会自动发布相关对象?

注意:这个问题似乎很相关,但事实并非如此:关联对象什么时候发布?

我正在为UIView实例添加第二个描述,如下所示:

- (void) setSecondDescription:(UIView*)view description2:(NSString*)description2 {
    objc_setAssociatedObject (view,&key,description2,OBJC_ASSOCIATION_RETAIN);
}

- (NSString*) secondDescription:(UIView*)view {
    return (id)objc_getAssociatedObject(view, &key);   
}
Run Code Online (Sandbox Code Playgroud)

如果是UIViewdeallocs,相关描述2是否会被解除分配?有没有办法让这种情况自动发生?

objective-c ios

15
推荐指数
1
解决办法
6382
查看次数