小编Tom*_*ulz的帖子

如何在Swift 5.0 / Xcode中用于强制解包

我希望能够代替使用!用于在Swift代码中强制展开。如果这是C ++,则可以尝试使用#define或类似的方法,但是我不确定如何实现。

我不能只在全球范围内替换!与,因为它不是用于声明强制解包变量,也可能是其他一些东西

使用某种Xcode宏或插件会更容易吗?

xcode ios swift

7
推荐指数
2
解决办法
211
查看次数

Swift UIView 子视图在自定义 UIView 子类中没有圆角

问候堆栈溢出。

我正在尝试使用彩色子视图和角半径来构建“牛眼”类型视图。我遇到的问题是,只有我的第一个子视图的角变圆,内部视图仍然是正方形。黑色视图是我的自定义视图的子视图。红色视图是它的子视图,黄色视图是它的子视图。非常简单的层次结构。

结果如下:

靶心用正方形代替圆形

我添加视图并手动设置它们的约束。我的测试应用程序只有视图控制器的 ThreeCircleView 死点,其中 X、Y 居中且宽度、高度恒定。我在 didLayoutSubViews 中对角进行了实际的圆角处理,因为视图的大小可能会发生变化,因此必须调整角的大小。

我写了一个测试视图来隔离它,这里是

class ThreeCircleView: UIView {

    var outerCircle: UIView = UIView()
    var middleCircle: UIView = UIView()
    var innerCircle: UIView = UIView()
    
    override init(frame: CGRect) {
        super.init(frame: frame)
        translatesAutoresizingMaskIntoConstraints = false
        addSubViews()
    }

    required init?(coder: NSCoder) {
        super.init(coder: coder)
        translatesAutoresizingMaskIntoConstraints = false
        addSubViews()
    }

    func addSubViews() {
        outerCircle.backgroundColor = .black
        middleCircle.backgroundColor = .red
        innerCircle.backgroundColor = .yellow
    
        self.addSubview(outerCircle)
        outerCircle.addSubview(middleCircle)
        middleCircle.addSubview(innerCircle)
        
        let outerCenterY = outerCircle.centerYAnchor.constraint(equalTo: self.centerYAnchor)
        let outerCenterX = outerCircle.centerXAnchor.constraint(equalTo: self.centerXAnchor)
        let outerCenterWidth = …
Run Code Online (Sandbox Code Playgroud)

uikit uiview ios swift

3
推荐指数
1
解决办法
1293
查看次数

iTunes Scripting Bridge - 如何播放特定曲目

我正在编写一个使用脚本桥来控制iTunes的mac应用程序.我已经生成了头文件iTunes.h,而SBApplication对象可以告诉我各种奇妙的东西.

但是,这些命令似乎非常有限.有一个'playpause'功能,但我认为没办法这样做

// iTunes是我的SBApplication对象[iTunes play:@"Smoke On The Water"];

这样做的Applescript相当简单

告诉iTunes播放songName

这个Scripting桥应该是我在Objective C中控制脚本化对象的超酷和强大的方式,所以我在这里缺少什么?

macos applescript itunes scripting-bridge

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

为什么没有调用rowHeight数据源方法

我的热切梦想是以编程方式确定具有不同行大小的UITableView.我已经阅读了UITableViewDataSource文档,并实现了这些方法:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
- (NSInteger)tableView:(UITableView *)table numberOfRowsInSection:(NSInteger)section;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
Run Code Online (Sandbox Code Playgroud)

我们可以在这里看到:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return (CGFloat) 200.0f;
}

- (NSInteger)tableView:(UITableView *)table numberOfRowsInSection:(NSInteger)section
{
    return 1;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell* test = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:nil ];

    test.textLabel.text = @"TEST";

    CGRect ffframe = test.frame;

    ffframe.size.height *= 200.0f;

    test.frame = ffframe;

    return test;        
}
Run Code Online (Sandbox Code Playgroud)

这些只是试图制作一个简单的表,一行,高度为200.0.我尝试在委托方法中返回高度,并明确设置它.两者都不起作用.

我尝试在调试器中捕获heightForRow方法,似乎永远不会被调用.

我的表行始终是我在界面构建器中设置的大小.

我有数据源连接正确,否则它不会得到行和textLabel正确.

iphone cocoa-touch uitableview

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